微控制器中把兩個16位無符號單位元組數求和相加,設計程式

2021-05-25 11:12:46 字數 2040 閱讀 9289

1樓:

啥微控制器?如果不考慮負數,那麼:

32位cpu的,直接加,

16位的直接加,但要判斷最高位是否溢位,

8位的,低8位先加,再高8位相加,同時加上低8位的進位,再判定最高位是否溢位。

以上供參考。

2樓:匿名使用者

;r2r3+r4r5=r1r2r3

add16:

mov r1,#0

mov a,r3

add a,r5

mov r3,a

mov a,r2

addc a,r4

mov r2,a

jnc add161

mov r1,#1

add161:ret

51微控制器 兩個雙位元組無符號數的加法

3樓:王永建_西安

add a,#data ;例:add a,#10h

add a,direct ;例:add a,10h

add a,rn ;例:add a,r7

add a,@ri ;例:add a,@r0

用途:將a中的值與其後面的值相加,最終結果否是回到a中。

例:mov a,#30h

add a,#10h

帶進位位的加法指令

addc a,rn

addc a,direct

addc a,@ri

addc a,#data

用途:將a中的值和其後面的值相加,並且加上進位位c中的值。

由於51微控制器是一種8位機,所以只能做8位的數**算,但8位運算的範圍只有0-255,這在實際工作中是不夠的,因此就要進行擴充套件,一般是將2個8位的數**算合起來,成為一個16位的運算,這樣,能表達的數的範圍就能達到0-65535

如何合併呢?其實很簡單,讓我們看一個10進位制數的例程:

66+78。

這兩個數相加,我們根本不在意這的過程,但事實上我們是這樣做的:先做6+8(低位),然後再做6+7,這是高位。做了兩次加法,只是我們做的時候並沒有刻意分成兩次加法來做罷了,或者說我們並沒有意識到我們做了兩次加法。

之所以要分成兩次來做,是因為這兩個數超過了一位數所能表達的範置(0-9)。

在做低位時產生了進位,我們做的時候是在適當的位置點一下,然後在做高位加法是將這一點加進去。那麼計算機中做16位加法時同樣如此,先做低8位的,如果兩數相加產生了進位,也要「點一下」做個標記,這個標記就是進位位c,在psw中。在進行高位加法是將這個c加進去。

例:1067h+10a0h,先做67h+a0h=107h,而107h顯然超過了0ffh,因此最終儲存在a中的是7,而1則到了psw中的cy位了,換言之,cy就相當於是100h。然後再做10h+10h+cy,結果是21h,所以最終的結果是2107h。

至於資料如何定義到你要的位置,這個問題不用我教你了吧!!!

4樓:做而論道

mov a, 60h

add a, 50h

mov 60h, a

mov a, 61h

addc a, 51h

mov 61h, a

mov 10h, cend

51微控制器計算完16個單位元組無符號數的累加和,其結果儲存在ramd的31h,30h單元,寫**

5樓:匿名使用者

qh:mov 30h,#0

mov 31h,#0

mov r2,#16

loop:

mov a,@r0

add a,30h

mov 30h,a

clr a

addc a,31h

mov 31h,a

djnz r2,loop

mov r2,#4

loop1:

clr c

mov a,31h

rrc a

mov a,30h

rrc a

djnz r2,loop1

mov 32h,aret

51微控制器兩個雙位元組無符號數的加法

add a,data 例 add a,10h add a,direct 例 add a,10h add a,rn 例 add a,r7 add a,ri 例 add a,r0 用途 將a中的值與其後面的值相加,最終結果否是回到a中。例 mov a,30h add a,10h 帶進位位的加法指令 ad...

51微控制器中,如果兩個16進位制的數相加超過了FFH,那我怎麼看出相加的數為多少

如果使用c語言,就用long型資料 或32位int 32位 64位系統用 如果使用組合語言,就看進位c cy 51微控制器兩個十六進位制數相加程式設計 直接按位或 a 0xff b 0xea c a b 或者直接相加 a 0xff b 0xea c a b 推薦第一種 兩個什麼樣的陣列,是將每個值相...

微控制器中兩個for語句是如何執行的

這兩個for語句相同。是起一個延時的作用,最初i 0,i 0 30000,繼續執行,i 即i自加1為i 1,然後i 1,i 1 300000,繼續執行i 直到i 30000跳出for語句,這個過程微控制器執行需要時間,就起到了一個延時的作用。這個很重要,第一,如果是編劇遺忘,那就太失敗了,因為如果我...