前几天,用 51 汇编语言,写了一个把 BCD 码转换成二进制数的程序。
下面则是一个用 86x86 汇编语言写的。
题目:汇编语言 BCD 码转二进制
将一个 BCD 码转换成二进制数。
条件:
五位 BCD 码由高到低放在:
BH 00
BL 万位
DH 千位百位
DL 十位个位
要求:转换结果放在DI寄存器中。
转换结果放在DI寄存器中。谢谢各位大神!
题目链接:http://zhidao.baidu.com/question/1795940692907266707.html
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 的,虽然复杂了一些,也就应该能看懂了。
http://hi.baidu.com/do_sermon/item/1323522cf6b1c8162b0f1cc2