单片机中十进制调整指令:DA A是什么意思?

2025-02-06 04:23:43
推荐回答(4个)
回答1:

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。

回答2:

这条指令对累加器中由上一条加法指令(加数和被加数均为要所BCD吗)所获得的8位结果进行调整,使它调整为八位压缩BCD码的数。
例如:(A)=55,(R5)=67
ADD A,R5
DA A
结果为(A)=23,CY=1.

回答3:

DA A,就是把A中的操作数转换成10进制

回答4:

一般用在加法运算中,作用:把A中的数,变为BCD码的形式
结果在:CY,AC,和A中

例如:

MOV A,#100
ADDc A,#25
DA A

结果是:A=83H,CY=0,AC=1