itoa:
push ax
;si源地址,di目标地址
push bx
push cx
push si
push di
sub bp,bp ;bp表示字符串的个数
mov ax,[si] ;将5937000整型数据装入ax,dx中
mov dx,[si+2]
mov bx,10
s: mov si,ax ;保存L位
mov ax,dx
sub dx,dx
div bx
push ax ;保存int(H/n)
mov ax,si
div bx
mov cx,ax
mov [di],dx ;保存rem(x/n)到cx
inc bp
pop dx ;必须保证push与pop的一一对应,这里pop dx就必须放在jcxz的前面
jcxz ok
inc di
jmp s
ok: pop di ;寄存器出栈
pop si
pop cx
pop bx
pop ax
call nxcf ;函数再调用函数“逆序存放”
ret
;*******************
nxcf: push ax
push bx
push cx
push di
push bp
sub ah,ah
mov bx,di
mov cx,bp
s3: mov al,[bx]
add al,48
push ax
inc bx
loop s3
mov bx,di
mov cx,bp
s4: pop ax
mov [bx],al
inc bx
loop s4
pop bp
pop di
pop cx
pop bx
pop ax
ret
push bx
push cx
push si
push di
sub bp,bp ;bp表示字符串的个数
mov ax,[si] ;将5937000整型数据装入ax,dx中
mov dx,[si+2]
mov bx,10
s: mov si,ax ;保存L位
mov ax,dx
sub dx,dx
div bx
push ax ;保存int(H/n)
mov ax,si
div bx
mov cx,ax
mov [di],dx ;保存rem(x/n)到cx
inc bp
pop dx ;必须保证push与pop的一一对应,这里pop dx就必须放在jcxz的前面
jcxz ok
inc di
jmp s
ok: pop di ;寄存器出栈
pop si
pop cx
pop bx
pop ax
call nxcf ;函数再调用函数“逆序存放”
ret
;*******************
nxcf: push ax
push bx
push cx
push di
push bp
sub ah,ah
mov bx,di
mov cx,bp
s3: mov al,[bx]
add al,48
push ax
inc bx
loop s3
mov bx,di
mov cx,bp
s4: pop ax
mov [bx],al
inc bx
loop s4
pop bp
pop di
pop cx
pop bx
pop ax
ret