|
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统 驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe |
请教DA 的用法 |
作者:wxq22 栏目:新手园地 |
哪位大哥能给我讲解以下DA这个十进制调整指令的用法? 都加6是什么意思? |
2楼: | >>参与讨论 |
作者: maychang 于 2006/7/5 10:07:00 发布:
Re: 十进制调整用于BCD码加法。两个压缩BCD数相加,先按照二进制相加,然后用十进制调整指令,该指令检查结果是否正确,如错误则进行调整。 例如,55H与66H相加,按照二进制是BBH,没有进位。但按照十进制则应该是21H,有进位。 MOV A,#55H ADD A,#66H 结果是BBH,C清零 MOV A,#55H ADD A,#66H DA A 结果是21H,C置位 |
3楼: | >>参与讨论 |
作者: wxq22 于 2006/7/5 17:07:00 发布:
还是有点问题 1-前面为什么要清0 2-后面21H是怎么来的,能否再说明一下. 因为我看的书上把这个DA的用法省略掉了,请指教.THANK YOU VERY MUCH! |
4楼: | >>参与讨论 |
作者: wxq22 于 2006/7/5 17:10:00 发布:
BCD码的范围? BCD码的范围是0-F吗? |
5楼: | >>参与讨论 |
作者: twz8858877 于 2006/7/5 18:33:00 发布:
DA指令 一般用于加法以后做十进制调整,具体操作是累加器低四位大于9或辅助进位为1时,低四位加6;高四位大于9或进位位为1时高四位加6。在maychang举的例子中加法以后累加器中高四位与低四位均大于9,所以调整时高低四位同时加6,结果为21H,C置位。 BCD码范围为0~9,称为二-十进制数,即用二进制来表示的十进制数,DA指令中的加6正是这两种数制范围不同而得来的。(单片机中的运算指令都是基于二进制的) |
6楼: | >>参与讨论 |
作者: wxq22 于 2006/7/6 8:11:00 发布:
谢谢 twz8858877 的解答. 谢谢 twz8858877 的解答.我终于明白了. |
7楼: | >>参与讨论 |
作者: jxb163 于 2006/7/6 17:02:00 发布:
哎,我还以为是关于D/A CONVERTER的呢! |
|
|
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入 |
Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号 |