80x86 組合語言程式設計:BCD 碼轉二進位制
阿新 • • 發佈:2019-02-08
前幾天,用 51 組合語言,寫了一個把 BCD 碼轉換成二進位制數的程式。
下面則是一個用 86x86 組合語言寫的。
題目:組合語言 BCD 碼轉二進位制
將一個 BCD 碼轉換成二進位制數。
條件:
五位 BCD 碼由高到低放在:
BH 00
BL 萬位
DH 千位百位
DL 十位個位
要求:轉換結果放在DI暫存器中。
轉換結果放在DI暫存器中。謝謝各位大神!
2013-11-15 08:53 提問者採納
條件,還應該有一句: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, AX
RET
提問者評價:十分感謝
後記:
80x86 是 16 位機,程式設計就能比 51 的簡單一些,所以本程式,就比較容易理解。
看懂了這個,再看 51 的,雖然複雜了一些,也就應該能看懂了。