我想让字符串反向输出,但有错误,那位帮帮我看看

来源:百度知道 编辑:UC知道 时间:2024/05/24 00:44:45
data1 segment
m db 'please input one string' 13,10,'$'
data1 ends
code1 segment
main proc far
assume cs:code1,ds:data1
start:
mov bx,data1
mov ds,bx
mov ah,09h
lea dx,m
int 21h
push ds
sub ax,ax
push ax
call inp
call outp
jmp main
mov ax,4c00h
int 21h
ret
main endp
inp proc near
input:
mov ah,1h
int 21h
mov cl,al
push cl
loop input
inp endp
outp proc near
output:
pop dl
mov ah,2h
int 21h
loop output
outp endp
code1 ends
end start

子程序有问题
mov cl,al
push cl
loop input
你的cx计数器是多少?
我想的是:
inp proc
xor cx,cx;cx清零
input:mov ah,01h
int 21h
cmp al,0dh;出入的与回车比较
je over
mov n,al;不用堆栈,因为al是8位的不能压栈
inc cx
jmp input
over: ret
inp endp
outp proc
lea si,n
output: add si,cx;找到串尾
mov dl,[si]
mov ah,02h
int 21h
loop outp
ret
oututp endp
我临时现编的不一定全对,你可以参考一下
祝你可以顺利解决问题!