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

如题所述

这是用汇编写程序,计算十进制时常用的指令,是十进制调整指令。

例,计算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)

2、按指令的执行时间来分:(1个机器周期为12个时钟周期

(1) 1个机器周期(64条) ,如MOV A,R2 MOV A,#0BH,

(2) 2个机器周期(45条) ,如MOV 0BH, #0BH

(3) 4个机器周期(2条) ,乘、除指令。

参考资料来源:百度百科-单片机系统指令

温馨提示:内容为网友见解,仅供参考
第1个回答  2009-06-13
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个回答  2018-04-17
这是用汇编写程序,计算十进制时常用的指令,是十进制调整指令。
例,计算15+16,而且是用BCD码表示时,是0001 0101 + 0001 0110
计算和为:0010 1011,是2BH,并不是31,这时就可以用DA A 指令进行整调,就变成 0011 0001 ,这就是31的BCD码了。
DA A 指令,只对加法计算结果有调整作用。本回答被网友采纳
第3个回答  2011-03-14
答案是 A=62H
DA A 是BCD加法后的调整
两个BCD码相加 35+27 =62
ADD A,#27后 A=5BH
DA A ;进行调整就成了 62H

一定是两个BCD码相加,DA A 要紧跟在 ADD 之后
第4个回答  2009-06-13
这条指令对累加器中由上一条加法指令(加数和被加数均为要所BCD吗)所获得的8位结果进行调整,使它调整为八位压缩BCD码的数。
例如:(A)=55,(R5)=67
ADD A,R5
DA A
结果为(A)=23,CY=1.

单片机中调整指令: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是什么意思
DA A指令,只对加法计算结果有调整作用。

电路中DAA到底是什么,有什么用
DAA 该指令跟在以AL为目的操作数的ADD或ADC指令之后,对AL的二进制结果进行十进制调整,并在AL得到十进制结果。DAA指令对OF标志无定义,按结果影响所有其他标志,其中CF反映压缩BCD码相加的进位状态。例:压缩BCD码的加法运算 mov al,68h ;al=68h,表示压缩BCD码68 mov bl,28h ;bl=28h,表示压缩B...

在汇编中,指令DAA是什么意思?
十进制数加调整指令DAA(Decimal Adjust After Addition)该指令是用于调整AL的值,该值是由指令ADD或ADC运算二个压缩型BCD码所得到的结果。压缩型BCD码是一个字节存放二个BCD码,低四位和高四位都是一个BCD码。其调整规则如下:1、如果AL的低四位大于9,或标志位AF=1,那么,AL=AL+6,并置AF=1...

汇编中DA指令到底什么意思?
单片机 汇编 DA A 指令为 十进制 调整指令, 是结合 加法 指令一起用的,在其它场合使用 没有意义 甚至会出错,如 十进制 加法 38+55=93 汇编为 MOV A, #38H ; A = 38H ADD A, #55H ; A = 38H+55H=8DH DA A ; A = 93H 调整指令后 ...

求教,单片机中的DA指令是指啥啊?
DA A;这条指令是十进制调整指令,用来在进行十进制运算(BCD码)时进行校正的。当两个BCD码加法时,01H+09H应该是等于10H,但由于 单片机的加法指令是二进制的运算,加完之后得到的结果是0AH,这时就需要再加上一个06H。DA这条指令就是起这个作用。

汇编中的DA指令是怎么回事,是转成8421BCD码么?
这个问题很简单!51单片机中DAA是十进制调整指令,一般跟在加法指令后面。 参加加法运算的数字,首先应该都是8421BCD码; 它们经过二进制的运算后,就不一定还是8421BCD码。 执行了DAA后,它就能够把结果调整为8421BCD码。 51单片机中DAA的指令,放在减法指令后面无效。

单片机里面的DA A指令用法,,,求教
daa 是16进制转换10进制的指令 防止出现字母 LCD无法显示 例:mov a,33h mov r1,a mov a,39h add a,r1 ;此时结果在ACC daa r1 ;这样结果转换10进制且存储在R1里面 只要是ADD后面做了DAA转化 可以直接显示 不会出现乱码

单片机中十进制调整指令:DA A是什么意思?
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,...

讨论利用MCS-51单片机DA A指令实现十进制减法运算的方法
DA A是十进制加法调整指令,用它进行减法运算也要写一段程序,为什么干脆用减法指令做减法。比如将十进制数十位对十位减,个位对个位减,有借位进行处理一下就行了。

相似回答