dtoc子程序
应用举例:12666转变为以十进制数的字符串,字符串以0为结尾符
遇到的困难点:转化后为66621的字符串了,我想用压栈的方式将其逆序,程序如下,当还是为66621,请大家帮忙看下什么问题。
ssume cs:code
data segment
db 10 dup(0)
data ends
code segment
start:mov ax,12666
mov bx,data
mov ds,bx
mov si,0
call dtoc
mov dh,8
mov dl,3
mov cl,2
call show_str
mov ax,4c00h
int 21h
dtoc: push bx
push dx
push cx
push ax
push si
push di
s1: mov bx,10
mov dx,0
div bx
mov cx,ax
add dl,30h
mov [si],dl
inc si
jcxz ok1
jmp short s1
ok1: mov cx,si
mov bx,cx
ok3: mov si,0
push [si]
add si,2
loop ok3
mov cx,bx
ok4: mov si,0
pop [si]
add si,2
loop ok4
pop di
pop si
pop ax
pop cx
pop dx
pop bx
ret |