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 + -
显示快捷键?