用組合語言編寫 1位餘三BCD碼除法,輸入輸出BCD碼相同

2022-05-26 03:50:20 字數 4311 閱讀 4740

1樓:匿名使用者

被除數是餘三碼嗎?除數也是餘三碼嗎?輸出還要餘三碼嗎?

2樓:做而論道

輸入什麼,輸出什麼?

樓主給出一個樣例。

餘三碼8421bcd碼轉換電路設計的接線方法

3樓:匿名使用者

接線圖:

用4位二進位制並行加法器實現8421碼到餘3碼的轉換,只需從4位二進位制並行加法器的輸入端a4、a3、a2和a1輸入8421碼,而從輸入端b4、b3、b2和b1輸入二進位制數0011,進位輸入端c0接上「0」。

其次,在將兩個餘三碼錶示的十進位制數相加時,能正確產生進位訊號,但對「和」必須修正。修正的方法是:如果有進位,則結果加3;如果無進位,則結果減3。

4樓:飛龍在天

以餘三碼8421碼轉5421碼為例:

邏輯電路圖:

5樓:灰太狼一拳把自己肚子打扁疼的嗷嗷叫

四個全加器 第一個接地 從低到高 輸出依次接下一個的輸入 a0a1a2a3接0011

b0b1b2b3接每個8421

6樓:厲桖杉

這個好寫的啊,,分分鐘的事情

組合語言bcd碼是什麼?

7樓:秒懂百科

bcd碼:一種二進位制的數字編碼形式

8樓:匿名使用者

bcd碼是一種表示方式,最初出現在數碼管的顯示方面

bcd碼(binary-coded decimal‎)亦稱二進碼十進數或二-十進位制**。用4位二進位制數來表示1位十進位制數中的0~9這10個數碼。是一種二進位制的數字編碼形式,

9樓:做而論道

bcd 碼,和組合語言,毫無關係。

bcd 碼,就是以二進位制數表示的十進位制數。

這問題,就是這麼簡單。

10樓:匿名使用者

計算機都是2進位制來儲存資料,因此要把一個10進位制資料轉換成2進位制,才能儲存在計算機中。

但是10進位制跟2進位制之間轉換很麻煩。而bcd嗎就是解決這個問題的。bcd碼就是把10進位制數的每1位都用4位的二進位制表示,如:

28的bcd碼是0010 1000,由於轉換的時候只要計算0~9之間轉換,因此非常的方便,口算就可以算出來了。

這就是bcd碼了!!

11樓:

bcd碼就是把10進位制數的每1位都用4位的二進位制表示

12樓:

bcd碼就是bcd碼噻

什麼bcd嘛就從第一位表示第一位下標

比如(1010)8421bcd=8*1+0*4+2*1+0*0=10就表示十進位制的10

組合語言壓縮bcd碼和非壓縮bcd碼是怎麼回事

13樓:匿名使用者

bcd碼是表示十進位制數的,非壓縮bcd碼是用8位表示的,其實只用低4位,高4位全為0。

例如,十進位制數36,用非壓縮bcd碼錶示為:0000 0011 0000 0110 ,這是兩個位元組。

壓縮bcd碼,就把高4位的0省掉了,用一個位元組表示兩個bcd碼了。

還是,十進位制數36,用壓縮bcd碼錶示為:0011 0110 ,就一個位元組就行了。節省了一個位元組。

14樓:永恆

非壓縮bcd碼是一個位元組表示1位的10進位制數。如 00000101 00000110b 表示 10進位制的56。

壓縮bcd碼是每4位二進位制表示1位的10進位制數。如 0101 0110b 表示10進位制的56。

組合語言bcd碼轉二進位制

15樓:做而論道

轉換結果放在di暫存器中。轉換結果放在di暫存器中。謝謝各位大神!

----

條件,還應該有一句:bcd 碼總數,不超過 65535 吧?

轉換程式如下:

mov cx, dx

mov ax, 10000

mul bx

mov di, ax

mov al, cl ;十位個位mov ah, 0

mov bl, 16

div bl

mov dl, ah ;個位

mov bl, 10

mul bl

add al, dl

mov ah, 0

add di, ax

mov al, ch ;千位百位mov ah, 0

mov bl, 16

div bl

mov dl, ah ;百位

mov bl, 10

mul bl

add al, dl

mov bl, 100

mul bl

add di, axret

如何用組合語言實現將壓縮bcd碼轉換成對應的非壓縮bcd碼?

16樓:匿名使用者

; 入口 al,出口 ax

packtobcd    proc nearpush bx

push cx

mov bl,al

and bl,15

mov cl,4

shr al,cl

mov ah,al    ; 高位放在ah中mov al,bl    ; 地位放在al中pop cx

pop bx

retpacktobcd    endp

17樓:藤原子大雄

mov r2, #05h;非壓縮bcd碼

mov r3, #06h

mov a, r2 ;將r2傳給a

swap a ;a的高低4位交換orl a, r3 ;將r3與a或運算mov r4, a ;運算後的值即壓縮碼關鍵是swap和orl運算。

18樓:浪花飄零

也以56為例來說明步驟

上面問題是要分別取得壓縮bcd碼的高四位和第四位,然後再分別作為非壓縮碼的低四位,而高四位用0來填充取得,具體步驟如下

1. 取得低四位

原碼與0f進行邏輯與,取得低四位並將高四位清0,得到 0000 0110

2取得高四位

原碼左移四位,將高四位移動到低四位上,然後與0f進行邏輯與,取得高四位的值作為bcd碼,並將新數的高四位清0,得到0000 0101

若滿意請及時採納,謝謝

19樓:匿名使用者

mov cl,4

mov al,56

shl ax,cl

shr al,cl

20樓:匿名使用者

mov al,56h

mov ah,al

and al,0fh

mov cl,4

shr ah,cl

and ah,0fh

除錯通過!

21樓:微控制器小鋪

mov a,#56h

anl a,#0fh ;去掉高4位,保留低4位mov r4,a ;低位儲存在r4

mov a,#56h

anl a,#0f0h ;去掉低4位,保留高4位swap a ;高低半位元組交換

mov r3,a ;高位儲存在r3中最後結果高位儲存在r3,地位儲存在r4

22樓:匿名使用者

壓縮bcd嗎是一個位元組的高低4位元組分別表示一個bcd嗎資料,非壓縮bcd嗎一個位元組就一個bcd碼資料,這個位元組高四位為0,低四位為bcd碼。

將壓縮bcd碼轉為非壓縮bcd碼,直接分離就可以了。以下舉例說明:

bcd2:

mov a,30h ;取壓縮bcd碼anl a,#0fh ;遮蔽高四位

mov 31h,a ;存分離的bcd碼(個位)mov a,30h ;再次取壓縮bcd碼swap a ;高低四位交換

anl a,#0fh ;遮蔽高四位

mov 30h,a ;儲存分離的bcd嗎(十位)ret

彙編中十進位制如何轉換為bcd碼

23樓:匿名使用者

bcd碼也叫二~十進位制碼,是用二進位制表示的十進位制碼,其對應的十六進位制碼表現形式上與10進位制一致,所以可以用四位分組法,即一轉四對應二進位制即可。

如:30分組為3和0對應二進位制為11 0000

用組合語言編寫簡單程式,用組合語言編寫一個簡單程式

1.計算u x y z 100 w 其中 x,y,z,w均為十六位有符號數。程式如下 data segment x dw 10 16位變數 y dw 20 z dw 30 w dw 40 u dw data ends code segment assume cs code,ds data start...

用組合語言編寫程式,用組合語言編寫一個程式。

那個 是可以,但是其實可以更簡單,小寫字母內碼範圍是61h 7ah 大寫字母內碼範圍是41h 5ah 那麼只要比較輸入的字元內碼是否在61h 7ah之間如果是,則將其減去20h,就是大寫字母了 print macro para 定義一個顯示字串的巨集 lea dx,para mov ah,9 int...

組合語言跑馬燈程式設計,用組合語言編寫跑馬燈程式

迴圈點亮你只要用位移指令就行啦!假如是p1口,你只要先給他賦予一個初值00000001,假如是高電平點亮,那這是就只有一盞燈亮,迴圈左移就行啦!每次迴圈一次,都呼叫一下延時這就可以按自己要求設定延時的時間啦!其實思路都挺簡單的!不過你要是對微控制器一點都不瞭解,那隻好叫別人寫好給你算了!你直接複製下...