elan5bitbcdto16bitbin.asm
来自「EM78的BCD码转十六进制表示的二进制码内带有详细注解.」· 汇编 代码 · 共 63 行
ASM
63 行
;----------5bitBCDconversion16BITbin----------------------
H-byte=0X10
L-byte=0X11
R0 =0X12
R1 =0X13
R2 =0X14
H-temp=0x15
L-temp=0X16
BCDTOB CLR H-byte
MOV A ,R0
and A ,@0X0FH
mov L-byte A
call Mpy10b ; 结果=10a+b
swapaA R1
call Mpy10b ;结果=10[10a+b]
mov A, R1
call Mpy10b;结果=10[10[10a+b]+c]
swapA R2
call Mpy10b ;结果=10[10[10[10a+b]+c]+d]
mov A, R2
and A,@0X0FH
add L-byte, A
JBC STATUS,C
JZ H-byte;果=10[10[10[10a+b]+C]+d+e
RET ;BCD 到BIN转换结束 Mpy10b and A,@OXOFH
add L-byte,A
JBC STATUS,C
JZ H-byte
Mpy10a BC STATUS,C;单元及进行除2处理
RLCA L-byte
MOV L-TEMP,A
RLCA H-byte ;最低位调整,
MOV H-temp,A ;
BC STATUS,C 逐步进行除2处理
RLC L-byte
RLC H-byte
BC STATDS,C 进行第三位二进制处理
RLC L-byte
RLC H-byte
BC STATUS,C ;进行第四位三进制处理
RLC L-byte
RLC H-byte ;一直到第四位
MOV A,L-temp
ADD A,L-byte
JBC STATUS,C
INC H-byte
MOV A,H-temp
ADD H-byte,A
RET
;主程序
main mov A, @0x60
mov R0, A
mov A, @0x55
mov R1, A
mov A, @0x35
mov R2, A
call BCDTOB
self goto self
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?