PDA

View Full Version : سوال: چگونه یک جمله را وارونه و چاپ کنیم ؟



shyboy
دوشنبه 02 خرداد 1390, 19:36 عصر
دوستان وقت بخیر
من می خوام در یک قسمت از برنامه یک جمله ای که از کاربر گرفتم رو بصورت وارونه چاپ کنم ، یعنی مثلا اگر کابر وارد کرد salam در خروجی malas چاپ شود . قطعه کدی که خودم نوشتم به شکل زیر هست ولی درست عمل نمی کنه :
طول رشته در ecx ذخیره شده ، رشته اولیه در StrC و رشته جدید در VstrC ذخیره خواهد شد


mov edx,0

lea esi,StrC
lea edi,vstrC
add esi,ecx
L1: cmp ecx,0
jz L2
mov edx,[esi]
mov [edi],edx
inc edi
dec esi
dec ecx
jmp L1
L2: output VstrC

armin0282
دوشنبه 02 خرداد 1390, 19:53 عصر
لازم به ذخیره طول رشته نیست کافیه با $ مقایسه کنید.

name "mycode"

org 100h ; set location counter to 100h

mov si,0
L1:mov al,msg[si]
cmp al,'$'
je E
inc si
jmp L1
E:cmp si,0
je E2
mov dl,msg[si-1]
mov ah,2
int 21h
dec si
jmp E

E2:

ret ; return to the operating system.

msg db "press any key...$"