如何用汇编语言将十六进制数转化为十进制数输出?

 我来答
a3185113
2012-05-11 · TA获得超过125个赞
知道答主
回答量:105
采纳率:100%
帮助的人:95.8万
展开全部
假设AX=59H BX=0(16进制数)——(10进制=89)
这个程序最好写个子程序.
loop:
mov a,AX
sub a,1
mov AX,A
mov a,BX ;减C标志
Sbc a,0h
mov BX,A
snz c 判断BX带标志-0是否借位 借位就跳出循环 不借位就进行+1 daa模式凯瞎
jmp END
mov a,1 ;减得断表示16进制的数还不=0 所以继续加1 如果需要宴孙敏3个寄存器放数据的
add a,al ;后面加写寄存器和BL的ADC模式一样
daa al 十进制转换;
mov a,0
adc a,bl ; 带晌枝C标志加
daa bl 十进制转换;
jmp loop
END :
ret
做而论道
高能答主

2022-08-19 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.1亿
展开全部

用汇编语言将十六进制数转化为十纳枯进制数输出?毁腔

方法太多了。

下图程序,是将十六洞余洞进制数循环除以 10,余数变换成 ASCII 保存起来。

最后用 9 号功能调用,显示十进制字符串。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
推荐于2016-07-02
展开全部
  采好芹衡用除 10 求余压栈,最后在逐一出栈进行显示,至于实现的原理,拿个实际数据单步走一边就能看明白了友做。
  参考如下:
  ;display the unsigned integer value in AX
  dec2asc proc
  push ax
  push dx
  push cx
  mov dx, -1 ; flag of ending
  push dx ; flag to stack
  mov cx, 10
  l_div10:
  xor dx, dx
  div cx ; DX:AX / CX
  push dx
  test ax, ax
  jne l_div10
  mov cx, -1
  mov ah, 2 ; display character in DL
  l_disp:
 首带 pop dx
  cmp dx, cx
  je l_ret
  add dl, '0' ; one-digit value turns to character
  int 21h ; display the digit
  jmp l_disp
  l_ret:
  pop cx
  pop dx
  pop ax
  ret
  dec2asc endp
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式