convert2_10.asm

来自「基于51单片机的频率计设计」· 汇编 代码 · 共 45 行

ASM
45
字号
DIN1   EQU  31H         ;输入数据BCD(高位)
DIN2   EQU  32H
DIN3   EQU  33H

Disp1  EQU  35H         ;输出数据10进制(高位)
Disp2  EQU  36H
Disp3  EQU  37H     

     ORG 0000H
     LJMP MAIN
     ORG  0100H

MAIN:MOV DIN1,#01H         ;BCD码初始化(高位)
     MOV DIN2,#023H
     MOV DIN3,#045H
     CLR A
     MOV Disp1,A
     MOV Disp2,A
     MOV Disp3,A
     MOV 3AH,#18H         ;转换3字节十六进制整数
LOOP:MOV A,DIN3            ;移出待转换数的一位到CY中
     RLC A
     MOV DIN3,A
     MOV A,DIN2
     RLC A
     MOV DIN2,A
     MOV  A,DIN1
     RLC  A
     MOV  DIN1,A
     MOV  A,Disp3         ;BCD码带进位自身相加,相当于乘2 
     ADDC A,Disp3
     DA   A
     MOV  Disp3,A
     MOV  A,Disp2
     ADDC A,Disp2
     DA  A
     MOV Disp2,A
     MOV A,Disp1
     ADDC A,Disp1
     DA  A
     MOV Disp1,A          ;双字节十六进制数的万位数不超过6,不用调整
     DJNZ 3AH,LOOP        ;处理完16BIT

     END

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?