微控制器中十進位制調整指令DAA是什麼意思

2021-03-07 07:50:09 字數 1688 閱讀 8263

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樓:

一般用在加法運算中,作用:把a中的數,變為bcd碼的形式結果在:cy,ac,和a中

例如:mov a,#100

addc a,#25

da a

結果是:a=83h,cy=0,ac=1

3樓:匿名使用者

這條指令對累加器中由上一條加法指令(加數和被加數均為要所bcd嗎)所獲得的8位結果進行調整,使它調整為八位壓縮bcd碼的數。

例如:(a)=55,(r5)=67

add a,r5

da a

結果為(a)=23,cy=1.

4樓:天下信義

da a,就是把a中的運算元轉換成10進位制

微控制器中調整指令:da a是什麼意思?

5樓:匿名使用者

35h+27h=5ch 累加器 a=5ch經過 da a

累加器 a=92

da a 的指令是累加器十進位制調整.

6樓:德昂當

答案是制 a=62h

da a 是bcd加法後的調整

兩個baibcd碼相加du 35+27 =62add a,#27後 a=5bh

da a ;進行調整就zhi

成了 62h

一定是兩個bcd碼相加,daoda a 要緊跟在 add 之後

7樓:生工種子

第四行應為a=5ch

微控制器十進位制調整

8樓:天邊之約

十進位制60,也就是十六進位制的3ch;

經過da a調整後,就變成了#60h。

如果沒有經過da a,你的懷疑是對的;

但是人家經過了da a,就沒得懷疑了。

十進位制調整指令daa的功能以及調整過程是什麼? 10

9樓:匿名使用者

舉個例子好過copy廢話連篇:

兩個壓縮的bcd數相加,如15h + 16h,結果為2bh,執行daa後,結果變為31h(就好像執行了一次10進位制加法一樣)。

壓縮的bcd,意思是用4位來表示一個10進位制數(0-9),這樣一個位元組就可以放兩個壓縮的bcd數。daa,具體含義是把al中的和調整為壓縮的bcd格式,之前必須執行add或adc指令。而這加法指令必須把兩個壓縮的bcd數相加,把結果存放到al中。

又如10h + 0fh,這樣的不是標準的bcd數相加,使用daa後,還是按照daa的調整方式得到25h。

微控制器中調整指令daa是什麼意思

35h 27h 5ch 累加器 a 5ch經過 da a 累加器 a 92 da a 的指令是累加器十進位制調整.答案是制 a 62h da a 是bcd加法後的調整 兩個baibcd碼相加du 35 27 62add a,27後 a 5bh da a 進行調整就zhi 成了 62h 一定是兩個bc...

什麼是十進調整指令,十進位制調整指令計算

bcd碼轉換指令 bai 比如說du 81d 91d 172d 而 zhi 81h 91h 112h 這裡為了將81h 91h結果與81d 91d一致dao,經過da有 da 112h 112h 60h 172h雖然一個是 專16進位制一個是10進位制但172在形式上是相屬等的。mov r5,81h...

微控制器程式裡 帶進位減法怎樣進行十進位制調整

如果是51微控制器的抄話,做襲 十進位制減法運算,只能用add和addc指令做,因為只有這兩條加法指令運算的結果才能用da a指令進行十進位制調整。方法是 如y a b,變成y a b 做加法之前將 b變成補碼就可以了。提倡用keilc寫程式,就不用考慮什麼十進位制調整了,也不管是加法還是減法了,多...