单片机中调整指令:DA A是什么意思
6个回答
展开全部
这是用汇编写程序,计算十进制时常用的指令,是十进制调整指令。
例,计算15+16,而且是用BCD码示时,是0001 0101 + 0001 0110
计算和为:0010 1011,是2BH,并不是31,这时就可以用DA A指令进行整调,就变成 0011 0001 ,这就是31的BCD码了。
DA A指令,只对加法计算结果有调整作用。
扩展资料:
1、按指令所占的字节来分:
(1)单字节指令(49条) 如MOV A,R2,(机器码11101010)
(2)双字节指令(46条) 如MOV A,#0BH,(机器码74H,
0BH)
(3)三字节指令(16条) 如MOV 0BH, #0BH ,(机器码75H,
0BH,0BH)
(1) 1个机器周期(64条) ,如MOV A,R2 MOV A,#0BH,
(2) 2个机器周期(45条) ,如MOV 0BH, #0BH
(3) 4个机器周期(2条) ,乘、除指令。
参考资料来源:百度百科-单片机系统指令
展开全部
BCD码转换指令;
比如说:
81D+91D=172D
而:
81H+91H=112H
这里为了将81H+91H结果与81D+91D一致,经过DA有:
DA(112H)=112H+60H=172H
虽然一个是16进制一个是10进制但172在形式上是相等的。
MOV R5,#81H
MOV A, #91H
ADD A, R5
DA A
首先81H+91H=112H,此时AC=0,Cy=1,A=12H,所以DA A后A=12H+60H=72H,AC=0,Cy=1,结果为172H,当然运算应该理解为81D+91D=172D。
比如说:
81D+91D=172D
而:
81H+91H=112H
这里为了将81H+91H结果与81D+91D一致,经过DA有:
DA(112H)=112H+60H=172H
虽然一个是16进制一个是10进制但172在形式上是相等的。
MOV R5,#81H
MOV A, #91H
ADD A, R5
DA A
首先81H+91H=112H,此时AC=0,Cy=1,A=12H,所以DA A后A=12H+60H=72H,AC=0,Cy=1,结果为172H,当然运算应该理解为81D+91D=172D。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这是用汇编写程序,计算十进制时常用的指令,是十进制调整指令。
例,计算15+16,而且是用BCD码表示时,是0001 0101 + 0001 0110
计算和为:0010 1011,是2BH,并不是31,这时就可以用DA A 指令进行整调,就变成 0011 0001 ,这就是31的BCD码了。
DA A 指令,只对加法计算结果有调整作用。
例,计算15+16,而且是用BCD码表示时,是0001 0101 + 0001 0110
计算和为:0010 1011,是2BH,并不是31,这时就可以用DA A 指令进行整调,就变成 0011 0001 ,这就是31的BCD码了。
DA A 指令,只对加法计算结果有调整作用。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
答案是 A=62H
DA A 是BCD加法后的调整
两个BCD码相加 35+27 =62
ADD A,#27后 A=5BH
DA A ;进行调整就成了 62H
一定是两个BCD码相加,DA A 要紧跟在 ADD 之后
DA A 是BCD加法后的调整
两个BCD码相加 35+27 =62
ADD A,#27后 A=5BH
DA A ;进行调整就成了 62H
一定是两个BCD码相加,DA A 要紧跟在 ADD 之后
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这条指令对累加器中由上一条加法指令(加数和被加数均为要所BCD吗)所获得的8位结果进行调整,使它调整为八位压缩BCD码的数。
例如:(A)=55,(R5)=67
ADD A,R5
DA A
结果为(A)=23,CY=1.
例如:(A)=55,(R5)=67
ADD A,R5
DA A
结果为(A)=23,CY=1.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询