微控制器指令部分,兩個16進位制的數怎麼相乘

時間 2021-05-06 00:10:37

1樓:

你可以用兩個暫存器放一個數字,然後ab相乘就轉換為四個暫存器相乘,結果放在四個暫存器中,這樣數字就可以放下了。八位的暫存器最多能達到0ffh,放不下這麼大的數,所以分開存放,然後進行相乘,可以得到結果。

2樓:匿名使用者

這也問,自己算得轉換成10 進位制

各位高手,我想求教彙編中mul指令的用法,我的微控制器暫存器是8位的,現在有兩個16位的數相乘,

3樓:匿名使用者

mul 指令只有一種用法即:

mul ab 即累加器a與暫存器b相乘,結果保留到a和b中如果是兩個16位相乘,那麼需要編制一個小函式來實現了。

雙位元組無符號數乘法程式 (r3r4*r6r7)=(r5r2r3r4);入口: r3,r4,r6,r7

;佔用資源: acc,b

;堆疊需求: 2位元組

;出口: r5,r2,r3,r4

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

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

4樓:煙火夜空

如果使用c語言,就用long型資料(或32位int(32位/64位系統用));

如果使用組合語言,就看進位c/cy

32位微控制器計算兩個int16的數相乘和兩個int32的數相乘,所花的週期一樣嗎?

5樓:匿名使用者

一般是一樣的。

這個具體可以查一下晶片核心指令**的手冊,如果有硬體乘法指令的系統,16位運算與32位運算所用時間,一般是一樣的。

樓上的忽略了32位機這個前提。一般在32位機上是會有硬體乘法指令或者是乘法器部件,是可以在單週期內計算32位乘法的。而16位的乘法,一般都是擴充套件成32位的乘法來實現,所以說時間一般來說是一樣的,都是一個週期。

特殊的情況包括,

沒有硬體乘法,使用移位加程式模擬乘法功能,32位的乘法時間可能會比16位乘多一倍,當然這還取決於乘法模擬演算法的具體實現。

用32位實現16位乘法,可能需要對16位數進行額外的擴充套件調整,這時是16位的慢一點。一般在c語言中就是根據系統字長規定int的型別,所以在c語言中如果不考慮移植,多使用int可能會提高編譯的效率,在32位機上最好使用32位的資料進行計算反而更快一些。

6樓:匿名使用者

肯定是不一樣的啊,一個16位,一個是32位就像你做1+1和10+10是一樣的

1+1只要一次計算就好

10+10要三次

利用51微控制器實現2位元組16進位制數乘法

7樓:匿名使用者

;雙位元組無符號數乘法程式 (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

微控制器兩個十六位兩進位制數怎麼判別大小

8樓:匿名使用者

就把十六進位制當成十進位制一樣來比較大小嗎。用比較指令,用減法指令,等等。

c程式就更好寫了,用》 號或< 號。

9樓:0427付強

16bit的資料可以合成為一個int型變數啊,然後就可以判別大小了。

微控制器指令判斷正誤,微控制器的指令判斷正誤

1 clr a 對 2 mul r0,r1 錯,只有mul a,b 3 mov dptr,1050h 錯,猜測該題意圖應該是mov dptr,1050h,並且dptr除了立即數賦值外只能用movx dptr,a來為其賦值 4 mov a,r7 錯,只有r0與r1可以間址 5 add 30h,20h ...

返回主程式指令是什麼微控制器,微控制器中斷返回指令

飄渺迷人 ret 普通子程式 reti 中斷子程式 古梵吉 我仔細看了一下所有人的回答,有根本沒看懂樓主問題答非所問的,也有回答的差不離的,我來切一下重點好了。樓主這所有問題其實歸根結底就是一個問題,堆疊和sp 堆疊指標 的問題 call指令執行時,就是先把當前程式指標壓入堆疊並使sp加1,然後開始...

微控制器加法指令只怎麼執行的,51微控制器的加法指令到底怎麼加啊,例如12A4H 0FE7H

a,30h是將30h記憶體中數加a放到a的儲存單元。84h 8dh,d是13,加4為17,0到15即0到f這16個數,結果為1,進位標誌c為有效,然後加進8 8 c 17,還是保留1並進位,所以最後是11h。psw是微控制器內部標誌暫存器,是微控制器執行必不可少的基本運算基礎,cy是進位標誌,是位元...