大家好,我是一名单片机初学者,请多指教 关于4位BCD码转二进制的问题,我的编程思路如下,大家帮忙看看这样对吗?谢谢
4位BCD码A B C D 转二进制 存入R0 R1
C X 10 + D -> R1 A X 10 + B -> R3 R3 X 100 低字节 + R1 -> R1 高字节 + 进位 -> R0
以上是我的思路,我在网上找了个程序如下,有个地方看不懂,下面箭头的位置,为什么是乘以250,而不是乘以10呢 ; INPUT: R3:R2 -- BCD ; OUTPUT: R5:R4 -- BIN ; USE: A, B, PWS MOV A, R2 CALL BCD_BYTE2BIN MOV R4, A MOV A, R3 CALL BCD_BYTE2BIN MOV B, #100 MUL AB ADD A, R4 MOV R4, A CLR A ADDC A, B MOV R5, A RET
BCD_BYTE2BIN: ; 10*Y + X = (16*Y + X)-6*Y = 250 * Y + (16*Y + X) - 256 * Y MOV R5, A ANL A, #0F0H SWAP A MOV B, #250 ; <- <- <- MUL AB ADD A, R5 RET |