汇编如何将dx:ax中的变量值,用10进制显示在屏幕上?

来源:百度知道 编辑:UC知道 时间:2024/05/20 14:32:20
如何将dx:ax中的变量值,用10进制显示在屏幕上?
一个16进制数存储在dx:ax中,如何将那个16进制数用10进制显示在屏幕上?或者将那个数写入到某个txt文件中

递归实现十六进制--->十进制
Code segment
assume cs:Code,ds:Data
Start:

xor dx,dx
mov bx,0ah
mov ax,9842
call Deci_Output

mov ah,4ch ;结束
int 21h
;---------------------------出口参数输出字符
;---------------------------功能:十六进制转为十进制输出
Deci_Output proc near;入口参数ax
push dx
xor dx,dx
or ax,ax
jz a001
div bx
call Deci_Output
add dl,'0'
push ax
mov ah,02h
int 21h
pop ax
a001:pop dx
ret
Deci_Output endp
Code ends
end Start

此程序将ax中的变量值转为十进制并输出

dx:ax中的变量值用10进制显示在屏幕上

可将程序中所有寄存器改为eax,ebx,ecx,edx 等等
(.386的指令集)
但是xp下的debug 似乎不支持扩展的32位寄存器

可以去下载一个debug(32位的)

然后把dx:ax中的变量值赋值于eax,就可以输出10进制显示在屏幕上