; 名称:dtoc
; 功能:将word型数据转变为表示十进制数的字符串,字符串以0为结尾符
; 参数:(dx)=dword型数据的高16位
; (ax)=dword型数镜的低16位
; ds:si指向字符串的首地址
; 返回:无
dtoc:
PUSH DX
PUSH BX
PUSH AX
PUSH SI
push cx
push di
; 在子程序中使用栈时,要把主程序的栈暂存起来
; 在子程序返回前要把栈设置为主程序的栈
; 换栈可以用寄存器保存或者用栈来实现
mov bx,ss
mov di,sp
MOV dx,stact
mov ss,dx
mov sp,20H
mov si,1
to:
MOV cx,10
call divdw
ADD cx,30H
push cx
MOV cx,ax
JCXZ ok1
ok:
mov cx,si
mov si,0
mov bp,sp
ok1:
mov cx,dx
jcxz ok
INC SI
JMP SHORT to
n:
mov dl,[bp]
mov [si],dl
inc si
add bp,2
loop n
mov ss,bx
mov sp,di
pop di
pop cx
POP SI
POP AX
POP BX
POP DX
RET
- [assumechen] 呵呵,我把程序搞复杂了。谢谢! 07/12 23:58
- [fpamc] MOV BX,AX MOV AX,DX MOV DX,0 07/11 23:26
- [assumechen] 这个公式原来一直想不明白,总是觉得会溢出,直到看到这个贴子才转过来。 http://www.asm 07/11 21:19
- [assumechen] 谢谢! 07/11 21:16
- [fpamc] 对的。 07/09 23:04
- [assumechen] 谢谢 06/30 22:34
- [assumechen] 谢谢 06/30 22:33
- [fpamc] 对的。 06/30 10:26
- [fpamc] 恩对的, 06/30 10:24
- [assumechen] 是程序错了,把这一句: mov word ptr es:[0dH],ax ; 雇员的平 06/29 14:45