1. 程式人生 > >80x86 組合語言程式設計:BCD 碼轉二進位制

80x86 組合語言程式設計:BCD 碼轉二進位制

前幾天,用 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 的,雖然複雜了一些,也就應該能看懂了。