51微控制器兩個十六位數減法,80c51微控制器程式設計實現兩個16位數的減法。

2021-05-29 15:53:02 字數 3150 閱讀 4270

1樓:匿名使用者

兩個16位?的字串?還是數字? 如果是數字直接運算。。。。。。如果是字串,轉成數字先。

80c51微控制器程式設計實現兩個16位數的減法。

2樓:七彩鏡

sub16:

clr c ;清進位mov a,#50h ;被減數低位送累加器subb a,#4bh ;減去減數低mov 31h,a ;差低位送31hmov a,#6fh ;被減數高位送累加器subb a,#13h ;減去減數高位mov 30h,a ;差高位送30h;如果有借位,c為1

3樓:頂起石頭的小草

你好!是用匯編來完成?

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

4樓:匿名使用者

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

5樓:匿名使用者

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

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

6樓:微控制器小丸子

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

7樓:頂起石頭的小草

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

如何用匯編設計兩個16位數相減的程式

8樓:匿名使用者

減數低八位送30h,高八位送31h。被減數低八位送32h,高八位送33h。差送34(低八位)、35(高八位)。

清cymov a, 30hsubb a, 32hmov 34h, a

mov a, 31hsubb a, 33hmov 35h, a

這是8051微控制器的設計方法,要是有支援16位的減法指令就不用設計了,直接寫就ok了。

9樓:匿名使用者

16位數是16位二進位制數還是十進位制數??(假如微控制器是8位的)如果是16位二進位制數就用2個暫存器*2+z標誌,每個數用2個暫存器來儲存,先算低8位的,然後算高8位減去z位其實用c位也可以如果是16位十進位制數要轉化為二進位制,然後就十分麻煩了,定義一個陣列或者結構體這麼大的數字微控制器算得很累的,沒有試過

10樓:匿名使用者

有16位減法就直接用單個指令實現,沒有的話想辦法擴充套件就ok了。

11樓:風雷小草

二樓的基本思路是對的,但沒有考慮低位元組相減得負數的情況。需要結合狀態暫存器,用分支對不同的情況進行區分。

51微控制器能完成兩個16位的加減運算嗎,例如1245h+cb78h

12樓:匿名使用者

可以的,但肯定不是一兩條語句能 完成的

c語言程式設計不考慮演算法,只管寫:

uint a,b,c;

a=0x1234; b=0xcb78;

d=a+b;

51微控制器處理16位數

13樓:匿名使用者

用匯編也可以處理,一樓的方法也是一種。

如果用c語言程式設計,無非就是把16位數分成兩部分,高8位與低8位,在運算的時候,按照我們一般的規則,從低位開始先乘後加。程式設計序細緻一點,問題不大。

14樓:匿名使用者

16位與16位的乘法和除法可能是32位了

unsigned long int ║4位元組║0~4294967295

你可以申明個

unsigned long int temp;

unsigned int k1,k2;

temp = k1*k2;

15樓:匿名使用者

1、整型數為16位。16位與16位相乘,則需定義長整型32位。除法則會取整處理。彙編實現時需要嚴謹處理。

2、簡單辦法是直接定義float型變數。注意float轉整型時不會四捨五入處理。+0.5處理。

具體要看看你的**。

16樓:匿名使用者

沒用過,好像通過移位的方法可以處理16位資料!

兩個十六位二進位制數相減,完整組合語言程式

17樓:江城微波

;兩個十六位進位制數相減

data

segment

num1 dw 1111000011110010b ;被減數num2 dw 1111000011110001b ;減數num3 dw ? ;結果

data ends

code segment

assume cs:code,ds:datastart: mov ax,data

mov ds,ax

mov ax,num1

mov bx,num2

sub ax,bx

mov num3,ax

mov ah,02h ;顯示結果

mov dx,num3

int 21h

mov ah,4ch

int 21h

code ends

end start

18樓:匿名使用者

對於86而言,有直接的16位減法指令,所以這個題目的cpu應該是8位微控制器,以51微控制器為例,先將借位清零,低八位相減法,再高八位帶借位減,類似於列式減法運算一樣。程式如下:

; (r3r4-r6r7)=(r3r4)

;入口: r3,r4,r6,r7

;出口: r3,r4

nsub :

mov a,r4

clr c ;借位清零subb a,r7 ;低八位相減

mov r4,a ;儲存低八位結果

mov a,r3

subb a,r6 ;高八位帶借位減mov r3,a ;儲存高八位結果ret

用兩個51微控制器實現其中微控制器兩個兩個位元組串列埠資料傳送

單一位元組傳送接收可以,只能說明軟體 硬體,基本調通 要想傳送資料,還必須制定通訊協議。傳送方,先向對方呼叫,待收到正確的迴音後 再向對方傳送 資料的位元組數 再向對方連續傳送資料位元組串,對方收到,存放到一個快取空間 傳送方,最後向對方發出校驗位元組 一般是累加和 待收到正確的迴音後,一次資料通訊...

試以兩片2732給80C51微控制器擴充套件4KB的外部程式存

兩塊6264資料儲存器的拓展,地址銜接的。prtuse7.7 的,有原始碼驗證是否正確!pxxf 以8051微控制器為核心,對其擴充套件8kb的外部程式儲存器。要求採用一片2764晶片,試畫出硬體邏輯連線圖並內詳 8051微控制器,片內是含有4kb的程式儲存器的。片內的這部分,樓主還用不用?用 還是...

兩個微控制器之間串列埠通訊為什麼其中微控制器接收不到資料呢?求解

請問一下,兩個微控制器分別是什麼型號,另外你可以檢查一下,是否串列埠線有問題,還有兩個微控制器是否共地了。一個 例項,可以參考一下 通常是線路接觸不良。微控制器與dtu通訊,我在微控制器裡 了一個串列埠傳送的程式,連上dtu之後,為什麼dtu收不到資料呢?那還是時序或協議不正確,也可能是dtu沒有正...