【发布时间】:2021-11-10 11:11:54
【问题描述】:
谁能帮我把这个字符串倒过来?
这是我的代码
include 'emu8086.inc'
PRINTN 'Enter length of string'
mov ah,1h
int 21h
printn
print "Enter String here: "
mov cl,al
sub cl,'0'
mov dl,cl
mov bx,0
p1:
mov ah,1h
int 21h
mov [bx],ax
inc bx
dec cl
cmp cl,0
jne p1
printn
PRINT 'inputted string : '
mov cl,dl
mov bx,0
output:
mov dl,[bx]
mov ah,2h
int 21h
inc bx
dec cl
cmp cl,0
jne output
printn
mov ax, 4c00h
int 21h
ret
【问题讨论】:
-
从末端向后循环而不是向前循环。你已经在倒计时
cl,也倒计时bx。在存储输入的最后一个字节后,bx已经指向缓冲区的末尾,因此如果您在循环之间保持bx未修改,则您已经有一个指向末尾的指针。
标签: string assembly reverse x86-16 emu8086