用递归倒序输出一个字符串
.model small
.data
string db 'hap$'
.stack 200h
.code
main proc far
start:
push ds
sub ax,ax
push ax
mov ax,@data
mov ds,ax
mov bx,offset string
push bx
call reverse
pop bx
mov dl,[bx]
mov ah,2
int 21h
ret
main endp
;-------------------------
reverse proc near
push ax
push bx
push dx
push bp
mov bp,sp
mov bx,[bp+10]
mov al,[bx]
cmp al,'$'
jne re_call
jmp return
re_call:
inc bx
push bx
call reverse
pop bx
mov dl,[bx]
mov ah,2
int 21h
return:
pop bp
pop dx
pop bx
pop ax
ret
reverse endp
;---------------------------------------
end start
为什么最后一个‘$’也输出来了?