汇编如何将dx:ax中的变量值,用10进制显示在屏幕上?
来源:百度知道 编辑:UC知道 时间:2024/05/20 14:32:20
一个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进制显示在屏幕上