51微控制器怎麼拆分十進位制位元組的高四位與低四位

2021-09-30 17:49:44 字數 3200 閱讀 7202

1樓:匿名使用者

您的「把十進位制數20載入26h」這個說法有些糊塗。

數的本身是無所謂「進位制」的。一個數就是一個數,所謂「進位制」只不過是一種表示方式而已。

您的這一條指令,不過就是把「這個數」送入26h單元。

這個指令中,數字20,只不過是您的程式裡寫成10進位制的樣子了,但並不是要求cpu也按照「這個樣子」來載入儲存單元。

這個指令中,你把20改寫成14h,cpu來說,含義完全一樣。因為這仍然是同一個數。這個數如果化為二進位制就是00010100。

至於cpu實際載入儲存單元時只可能是按二進位制:00010100。

所謂「位元組」,就是指8位二進位制的儲存單元存放的資料。

一般說一個位元組的高四位、低四位,都是指二進位制形式中的位。

所以,您的題目中的措辭「十進位制位元組的高四位與低四位」非常糊塗。

何謂「十進位制位元組」?何謂「位」?是哪個進位制的「位」?

順便指出:樓上dmf_wyw的解答,是「二進位制的高四位與低四位」。

2樓:匿名使用者

拆分高四位和低四位分別送p1和p2程式如下(假如存在26h中):

datdl:

mov a,26h

anl a,#0f0h

swap a

mov b,a

mov a,p1

anl a,#0f0h

orl a,b

mov p1,a

mov a,26h

anl a,#0fh

mov b,a

mov a,p2

anl a,#0f0h

orl a,b

mov p2,aret

3樓:做而論道

拆分一個位元組的高四位與低四位,除以16,即可。

mov a, 26h

mov b, #16

div ab ;分解成功mov p1, b

mov p2, a

sjmp $

4樓:

mov a,26h

anl a,#0fh

anl p2,#0f0h

orl p2,a

mov a,26h

anl a,#0f0h

swap a

anl p1,#0f0h

orl p1,a

微控制器中如何把高四位與低四位進行轉換

5樓:浴血前鋒

轉換有很多種

別學微控制器了,你基礎太薄,建議你從小學語文開始補習

6樓:汨_李國

b=a>>4; 將高四位移到低四位

c=a<<4; 將低四位移動高四位

d = c|b 再將高四位與低四位 位或

7樓:

假設a為原來的數 b儲存高4位 c存低四位b=a>>4; //右移4位使高4位存在低位c=a<<4; //左移4位使低4位存在高位a=b|c; //高低4位 或 組成新的簡化b=a>>4;

a=(a<<4)|b;

簡化 a=(a<<4)|(a>>4);

8樓:匿名使用者

王俊同學,不懂就明天來問我馮驥!

9樓:

左移,右移,後計算位或

x = (x<<4) | (x>>4)

微控制器中,用c語言怎麼實現一個8位二進位制數的高四位與低四位的交換,例如0xfe,怎麼變成0xef

10樓:還是呼喚

好像沒有直接的語句實現:應該可以通過左移和右移來實現把把!

如:a=0xfe;

a=(a>>4) | (a<<4);

11樓:匿名使用者

& 按位與

| 按位或

^ 按位異或

~ 取反

<< 左移

>> 右移

12樓:崔運生

b=a<<4;

a>=4;

a|=b;

微控制器中高8位是什麼,低8位又是什麼,還有高四位低四位的,求解

13樓:匿名使用者

在51微控制器上一個int型為16位資料,char型為8位資料。

高8位低8位是對應於16位資料來說的,

如二進位制的:1111111100000000 16進位制的:0xff00

那麼它的的高8位則是:11111111(二進位制) 0xff(16進位制)

低8位則是:00000000 0x00

同理,高4位低4位是對應於8位資料來說的。

14樓:匿名使用者

基本的樓上也說了,再補充幾點。

(1)之所以要分低8位和高8位的原因是,普通51微控制器(其實基本上簡單的微控制器都這樣)的暫存器只能放下8個字(位,bit),即1 byte(1位元組)

(2)高低八位其實就是把一個數拆開來。如果一個數高於0xff,小於0xffff就會出現放不進1個暫存器但卻能拆開來放在2個暫存器的情況(這種情況很普遍)。所以這時候把這個數轉換成16位的2進位制數,然後把16位拆成高8位和低8位。

而在8088之類的危機中,更有20位定址,把數拆成高4位低16位的情況。

(3)其實八位八位得拆很直觀啊,一個16進位制數可以變成4位2進位制數(而不用進行其他變化),比如0xfa就可以看成0xf0+0x0a,f=1111,a=1010,所以0xfa=1111(高四位) 1010(低四位),很方便吧。這就是八進位制、十六進位制、二進位制為何廣泛應用於數字系統設計的原因。而數位電路中從最簡單的3-8譯碼器,到64位微機都很注重高低位的放置。

(4)所以綜上,0x2f4a中,2f就是高八位,4a就是低八位,如果0x4a,則4是高四位,a是低四位

51微控制器**編碼器輸出的十六進位制數的高四位、低四位分別代表什麼?

15樓:匿名使用者

應該看程式中定義,如果你知道高、低四位有不同含義的話,我認為應該是音符和時長。

16樓:大樹愛樹懶

應該是定時器的初值。。。通過延時產生方波從而控制喇叭發出不同頻率的聲音

51微控制器節乘法程式51微控制器二位元組乘法程式

標號 功能 雙位元組二進位制無符號數乘法子程式入口條件 被乘數在r2 r3中,乘數在r6 r7中。出口資訊 乘積在r2 r3 r4 r5中。影響資源 psw a b r2 r7 堆疊需求 位元組muld mov a,r3 計算r3乘r7mov b,r7 mul ab mov r4,b 暫存部分積 m...

51微控制器(彙編)怎麼實現雙位元組除以單位元組的除法運算,求程式

jtya0 equ 50h jtya1 equ 51h jtya2 equ 52h jtya3 equ 53h jtya4 equ 54h jtya5 equ 55h jtya6 equ 56h jtya7 equ 57h 2 1 2位元組除法 jtya5 jtya4 jtya3 jtya1 jty...

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 推薦第一種 兩個什麼樣的陣列,是將每個值相...