BCD碼的加法和減法

2021-08-31 09:58:59 字數 1148 閱讀 9175

bcd碼以四位二進位制數視作乙個十進位制位

【例】bcd碼0011 0100(二進位制)、34h(十六進製制)表示34(十進位制)

bcd碼修正規則如下:

(1) 若兩個8421碼數相加之和等於或小於1001,不需修正。

(2) 若相加和在10-15之間,一方面應向高位產生進製,本身還要進行加6修正,進製是在加6修正時產生的。

(3) 若相加之和在16-18之間,向高位進製會在相加過程中自己產生,對本位還要進行加6修正。

為什麼進行+6修正:

二進位制直接相加,其進製實際上為16,而bcd碼的實際進製為10。因此在本位結果超過10的時候,進行+6修正,以恢復10進製。

【例題】bcd碼:9h + 3h = 12h

9h(1001)+ 3h(0011)

= ch(1100)// 二進位制加法,本位的值變為 12

=18h(0001 0010)// 對本位進行 +6 修正,向高位進 1,本位變為 2

bcd碼進行減法的步驟(補碼演算法):

①求減數的補碼,如果是兩位,則:補碼 = 100 - 減數。這裡的100,用2位的bcd碼可以表示為9ah(1001 1010)。

②利用bcd碼加法的運算法則,結果 = 被減數 + 減數的補碼。

③若結果有向高處的進製1,則忽略。

【例題】bcd碼:87h - 34h = 53h

9ah - 34 h = 66h (0110 0110)// 求減數的補碼

87h + 66h = edh (1110 1101)// 被減數 + 減數 (未修正)

edh = 153h (0001 0101 0011)// 修正,忽略高位 1,則結果為 53

BCD碼加法的步驟及其原因

當兩個bcd碼相加,如果和等於或小於 1001 即十進位制數9 不需要修正 如果相加之和在 1010 到1111 即十六進製制數 0ah 0fh 之間bai,則需加 6 進行修正 如果相加時,本位產生了進製,也需加 6 進行修正。這樣做的原因是,機器按二進位制相加,所以 4 位二進位制數相加時,是按...

COP2000實現BCD碼的加法

mov a,29h 輸入六位數的被加數存入三個位元組中 mov 0f0h,a mov a,99h mov 0f1h,a mov a,99h mov 0f2h,a mov a,99h 輸入六位數的加數存入三個位元組中 mov 0f3h,a mov a,99h mov 0f4h,a mov a,99h ...

BCD 碼的加減法及其混合運算

a 熟悉 掌握十進位制調整指令 bcd 碼 b 實現 bcd 碼的加減及其混合運算 a 重點 進行 bcd 碼加減法運算時,需要利用十進位制調整指令,所以要熟悉其指令格式。1.daa 指令 指令格式 daa daa為無目操作,用以完成對bcd碼加運算校正 用法 al 2.das 指令 指令格式 da...