DAA,DAS,AAA,AAS这个4个指令如何使用?

jacky_shen 2004-06-29 04:02:12
DAA,DAS,AAA,AAS这个4个指令如何使用?

何时何地需要使用这些指令。
也就说这4个指令在什么地方能派上用处?
...全文
1395 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
jacky_shen 2004-07-02
  • 打赏
  • 举报
回复
09H + 01H 通过 DAA 为 10H
现在疑惑的是,那如何取这值呢?
取出来不是就十进制的16嘛,也就是说让用户看到的是16,而不是10。
jacky_shen 2004-07-02
  • 打赏
  • 举报
回复
TO: longhuazhen(longhua)
>> 那么用DAA调整一下,结果变成11H
应该是10H吧
longhuazhen 2004-07-02
  • 打赏
  • 举报
回复
对对是10H,不好意思,是我打错了。
BCD码的好处就是比较容易转换成能输出到屏幕ASCII字符,这次换AAA调整为非压缩的BCD码,这样更容易转换,这时AX的内容0100H,这样只要把AL和AH都加上30H(这样就变成3130H),现在马上就可送去屏幕显示了(1和0的ASCII码分别为31H和30H)。
你说的10H就是十进制的16,用户会看到16而不是10。这里有个误解,屏幕接受是ASCII码,然后在屏幕上显示对应的字符,你可以查一下ASCII表,看看10H(16)对应的ASCII字符是什么,你把10H直接送去显示的中断服务程序,看看能不能在屏幕上显示出16或者10H来。
jacky_shen 2004-07-01
  • 打赏
  • 举报
回复
那何时何种情况下需要使用BCD数呢?
longhuazhen 2004-07-01
  • 打赏
  • 举报
回复
BCD数也是逢10进一,所以BCD数不会出现象16进指里面的A B C等数
十进制 两进制 BCD编码
1 00000001(01H) 00000001(01H)
9 00001001(09H) 00001001(09H)
10 00001010(0AH) 00010000(10H)
11 00001011(0BH) 00010001(11H)

这样应该比较清楚了吧,至于什么时候用BCD数那就要看你自己了,你把它当做什么?例如9(09H)加1,就变成0AH,两进制加法这样就结束了,如果你把那个9和1当成BCD数,那么0AH的结果显然不对了,那么用DAA调整一下,结果变成11H,这样就符合BCD编码了。
现在应该理解什么叫两进制编码的十进制数了吧(BCD)
jacky_shen 2004-06-30
  • 打赏
  • 举报
回复
BCD数是不是就是十进制数?
那何时需要使用BCD数呢?
longhuazhen 2004-06-30
  • 打赏
  • 举报
回复
BCD数运算时用。
longhuazhen 2004-06-30
  • 打赏
  • 举报
回复
BCD是用两进制表示的十进制数,当两个BCD数加减后就需要调整一下。
programfanny 2004-06-30
  • 打赏
  • 举报
回复
查书啦。

21,497

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧