51微控制器組合語言做16位除法,51微控制器是否能夠完成16位的加減乘除運算

時間 2021-05-05 17:13:52

1樓:大別山的蝸牛

;雙位元組無符號除法程式 (r5r2r3r4/r6r7)=(r2)r3r4 餘數r6r7

;入口: r5,r2,r3,r4,r6,r7;占用資源: acc,b,f0

;堆疊需求: 4位元組

;出口: (r2),r3,r4,r6,r7,ovndiv42 : mov a,r1

push a

mov b,#00h

ndv421 : mov a,r2

clr c

subb a,r7

mov r1,a

mov a,r5

subb a,r6

jc ndv422

mov r5,a

mov a,r1

mov r2,a

inc b

sjmp ndv421

ndv422 : push b

mov b,#10h

ndv423 : clr c

mov a,r4

rlc a

mov r4,a

mov a,r3

rlc a

mov r3,a

mov a,r2

rlc a

mov r2,a

xch a,r5

rlc a

xch a,r5

mov f0,c

clr c

subb a,r7

mov r1,a

mov a,r5

subb a,r6

jb f0,ncv424

jc ndv425

ncv424 : mov r5,a

mov a,r1

mov r2,a

inc r4

ndv425 : djnz b,ndv423pop a

clr ov

jnz ndv426

setb ov

ndv426 : xch a,r2

mov r7,a

mov a,r5

mov r6,a

pop a

mov r1,aret

2樓:

可用16位數減法來實現的,思路:先判斷被除數》=除數,16位被除數-16位除數

再判斷被除數》=除數,16位被除數-16位除數,如此迴圈,直到被除數 《除數結束

3樓:匿名使用者

;r2r3/r6r7=r4r5 (cy=1: over)divd: clr c

mov r4,#0

mov r5,#0

divd0:

mov a,r3

subb a,r7

mov a,r2

subb a,r6

jc divd2

inc r5

mov a,r5

jnz divd1

inc r4

divd1: sjmp divd

divd2:ret

51微控制器是否能夠完成16位的加減乘除運算?

4樓:徐少

可以1,程式設計上,完全可以做到

2,實際效果可能與想象中的不一樣

3,如果要做到輸入實時顯示和報錯,程式還是有點複雜的。

5樓:匿名使用者

51微控制器是8位微控制器,一次運算只能進行8位加減乘除,但16位乘除法可以通過多次運算獲得,匯程式設計序在很多教科書上都有

如果用c語言的話,可以不考慮它是怎麼實現的,只管定義兩個整形變數(16位)即可

51微控制器怎樣進行兩個16位數的運算

6樓:匿名使用者

運算過程是在累加器和暫存器中自動進行的

7樓:匿名使用者

這是用組合語言程式設計時,才要考慮的問題。要是用c語言程式設計,只要宣告了乙個16位變數就可以了,四則運算都可以的。

組合語言寫程式,加減法,比較容易簡單,只是乘除法要麻煩些。不過,也就是用兩個位元組,分成高8位和低8位分別運算就行了。

8樓:微控制器小丸子

分倆次啊,先儲存在乙個暫存器中。

9樓:頂起石頭的小草

你好!是「加減乘除」的哪一種?

基於keil c和protues(51微控制器)軟體用組合語言實現十六位數的加減乘運算程式

10樓:匿名使用者

;r3r2+r7r6=r3r2...c

add16:

mov a,r2

add a,r6

mov r2,a

mov a,r3

addc a,r7

mov r3,a

ret;r3r2-r7r6=r3r2....csubb16:

clr c

mov a,r2

subb a,r6

mov r2,a

mov a,r3

subb a,r7

mov r3,a

ret;(r3r4*r6r7)=(r5r2r3r4)nmul22 : mov a,r4

mov b,r7

mul ab

xch a,r4

mov r5,b

mov b,r6

mul ab

add a,r5

mov r5,a

clr a

addc a,b

mov r2,a

mov a,r3

mov b,r7

mul ab

add a,r5

mov r5,a

mov a,b

addc a,r2

mov r2,a

clr a

addc a,#00h

xch a,r3

mov b,r6

mul ab

add a,r2

mov r2,a

mov a,b

addc a,r3

xch a,r5

mov r3,a

clr ovret

11樓:李小蕩張大偉

直接寫不就行了麼?不太明白你要得到什麼結果

微控制器彙編DA指令什麼用,微控制器組合語言十進位制調整da

胡像貓 微控制器彙編言語da指令,是指十進位制加法運算。是結合加法指令一起用的,例如daa,這條指令是十進位制調整指令,用來在進行十進位制運算 bcd碼 時進行校正的。當兩個bcd碼加法時,01h 09h應該是等於10h,但由於 微控制器的加法指令是二進位制的運算,加完之後得到的結果是0ah,這時就...

微控制器組合語言的幾個疑問

靈若伊雪 1 r1 20h 不是一條指令,而只是一種說明,表明r1暫存器中的內容是20h。這個20h是地址還是資料,與這個說明無關。2 在指令 mov r1,40h 中,r1 是間接定址方式,表明r1中的內容是地址,指令的功能表明是將立即數40h傳送到r1指定的地址中。3 在指令中容易混淆的是立即數...

組合語言在51微控制器中的所有指令有那些

冷月上柵欄 微控制器指令功能一覽表 助記符 說明 mov a,rn e8 ef 暫存器a mov a,direct e5 dircet 直接位元組送a mov a,ri er e7 間接ram送a mov a,data 74 data 立即數送a mov rn,a f8 ff a送暫存器 mov r...