View Full Version : سوال: مشکل در معکوس کردن رشته
imanss
دوشنبه 29 آذر 1389, 19:38 عصر
.model small
.stack 32h
.data
strlist label byte
max db 2
len db ?
buffer d 20 dup(?)
.code
main proc far
mov ax,@data
mov ds,ax
mov bx,offset strlist
mov chr1,bx
k1: mov ah,0ah
lea dx,strlist
int 21h
mov al,[bx]
cmp al,'$'
ja k2
inc bx
jmp k1
k2: dec bx
mov al,[bx]
mov ah,02h
int 21h
mov chr1,bx
je fine
jmp k2
fine: mov ah,4ch
int 21h
main endp
end main
mov ah,4ch
int 21h
main endp
end main
xman_1365_x
دوشنبه 29 آذر 1389, 23:59 عصر
اين برنامه كه شما نوشتي پر خطاي گرامر هست و با درست كردنشم به جواب نميرسي
اين درستش فقط گذاشتم ببيني چه اشتباهاتي داشتي كه ديگه تكرار نكني
.model small
.stack 32h
.data
strlist label byte
max db 2
len db ?
buffer db 20 dup(?)
chr1 dw ?
.code
main proc far
mov ax,@data
mov ds,ax
mov bx,offset strlist
mov chr1,bx
k1: mov ah,0ah
lea dx,strlist
int 21h
mov al,[bx]
cmp al,'$'
ja k2
inc bx
jmp k1
k2: dec bx
mov al,[bx]
mov ah,02h
int 21h
mov chr1,bx
je fine
jmp k2
fine: mov ah,4ch
int 21h
main endp
end main
mov ah,4ch
int 21h
main endp
براي اين كار شما يك حلقه نياز داري كه n تا كاراكتر با وقفه بگيره بريزي توي يك آرايه از نوع بايت
بعد اگر بگيم
str1 db 20 dup(?)خوب خونه اول كه آدرسش در str1 هست بخاي بري خانه آخر كافيه يك حلقه معكوس بزاري از آدرس شروع + n-1 شروع كنه و با وقفه چاپ كني و يك واحد از n كم كني
(به طور ساده يعني شما بجاي چاپ از اول آرايه رفتي از خونه آخر داري مياي به اول)
imanss
سه شنبه 30 آذر 1389, 11:25 صبح
.model small
.stack 32h
.data
strlist label byte
max db 2
len db ?
buffer db 20 dup(?)
chr1 dw ?
.code
main proc far
mov ax,@data
mov ds,ax
mov bx,offset strlist
mov chr1,bx
mov cx,1
k1: mov ah,0ah
lea dx,strlist
int 21h
mov dl,[bx]
mov ah,02h
int 21h
cmp cx,12
je k2
inc bx
inc cx
jmp k1
k2: cmp cx,1
je fine
mov dl,[bx]
mov ah,02h
int 21h
dec bx
dec cx
jmp k2
fine: mov ah,4ch
int 21h
main endp
end main
imanss
سه شنبه 30 آذر 1389, 11:34 صبح
این که نوشتم برا 12 کاراکتر که از ورودی میگیره بعد از خون 1 میره به خونه 12 دوباره یک حلقه نوشتم که برنامه عکس بشه میدونم اشتباه میخوام راهنماییم کنی
xman_1365_x
سه شنبه 30 آذر 1389, 15:42 عصر
خوب مسلما مشكل داره اما خودت دقت كن پيداش كن
چون با وقفه اي براي گرفتن ليستي از كاراكتر نوشتي منم برات همينطور نوشتم نه اينكه بياد يكي يكي بگيره
با نگاه كردن به اين بايد مشكلت حل شه(اين برنامه دقيقا همون چيزي هست كه مي خواي!)
من اين برنامه رو در پست هاي قبل با گرفتن ورودي به صورت كاراكتري نوشته بودم اينجا شد رشته اي از كاراكتر
سورس را برداشتم تا افرادي كه از الان ميان كمي تحقيق كنند تا ياد بگيرند!
imanss
سه شنبه 30 آذر 1389, 23:21 عصر
مرسی آقا xman واقعا ممنونم tanks
imanss
سه شنبه 30 آذر 1389, 23:22 عصر
.model small
.stack 32h
.data
msg db '*****','$'
msg1 db '',13,10,'$'
.code
main proc far
mov ax,@data
mov ds,ax
mov bx,offset msg
mov cx,2
p1: mov dl,[bx]
mov ah,02h
int 21h
cmp cx,1
je p2
p2: mov ah,09h
lea dx,msg1
int 21h
mov cx,2
cmp cx,1
je p3
mov dl,[bx]
mov ah,02h
int 21h
inc bx
dec cx
jmp p2
p3: mov ah,09h
lea dx,msg1
int 21h
mov cx,3
cmp cx,1
je p4
mov dl,[bx]
mov ah,02h
int 21h
inc bx
dec cx
jmp p3
p4: mov ah,09h
lea dx,msg1
int 21h
mov cx,4
cmp cx,1
je p5
mov dl,[bx]
mov ah,02h
int 21h
inc bx
dec cx
jmp p4
p5: mov ah,09h
lea dx,msg1
int 21h
mov cx,5
cmp cx,1
je p6
mov dl,[bx]
mov ah,02h
int 21h
inc bx
dec cx
jmp p5
p6: mov ah,09h
lea dx,msg1
int 21h
mov cx,4
cmp cx,1
je p7
mov dl,[bx]
mov ah,02h
int 21h
inc bx
dec cx
jmp p6
p7: mov ah,09h
lea dx,msg1
int 21h
mov cx,3
cmp cx,1
je p8
mov dl,[bx]
mov ah,02h
int 21h
inc bx
dec cx
jmp p7
p8: mov ah,09h
lea dx,msg1
int 21h
mov cx,2
cmp cx,1
je p9
mov dl,[bx]
mov ah,02h
int 21h
inc bx
dec cx
jmp p8
p9: mov ah,09h
lea dx,msg1
int 21h
mov dl,[bx]
mov ah,02h
int 21h
mov cx,1
cmp cx,1
je f1
f1: mov ah,4ch
int 21h
main endp
end main
imanss
سه شنبه 30 آذر 1389, 23:33 عصر
با این برنامه میخوام ستاره را به صورت لوزی چاپ کنم نمیدونم چرا درست اجرا نمیشه
*
**
***
****
*****
****
***
**
*
imanss
سه شنبه 30 آذر 1389, 23:39 عصر
اول برنامه باید مینوشتم mov cx,1 یعنی از یک ستاره شروع کنه
xman_1365_x
چهارشنبه 01 دی 1389, 00:26 صبح
اينجا جاش نيست بايد تاپيك جداگانه بزنيد،فردا شب وقت شد ميام راهنمايي مي كنم اما اين يكي رو برات نمي نويسما،بايد سعي كني خودت حلش كني!
ضمنا اين برنامه هايي كه خودت نوشتي ميگم برو مشكلشو پيدا كن اصلا ميري؟:چشمک:
الان خوابم مياد،فردا هم امتحان دارم هيچي نخوندم با اين حال ميام اينجا جواب ميدم:لبخند:
براي تشكر هم كافبه پايين كامنتم بزنيد تشكر
موفق باشي
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.