📄 asm2-2.lst
字号:
A51 MACRO ASSEMBLER ASM2_2 07/18/2005 11:22:01 PAGE 1
MACRO ASSEMBLER A51 V7.09
OBJECT MODULE PLACED IN Asm2-2.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE Asm2-2.asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1 ;=============================================================
2 ; 文件名称: Asm2-2.asm
3 ; 功能描述: 二进制整数(16位)转换为十进制整数(组合BCD)
4 ;=============================================================
5 ; 0--FFFFH(R3R4)==>0--65535
0000 6 ORG 0000H
0000 020100 7 LJMP MAIN
0100 8 ORG 0100H
0100 7822 9 MAIN: MOV R0, #22H ;转换结果低位地址
0102 E8 10 MOV A, R0
0103 C0E0 11 PUSH ACC ;ACC表示累加器A的直接地址
0105 7F03 12 MOV R7, #03H
0107 E4 13 CLR A
0108 F6 14 LP1: MOV @R0, A ;结果存储地址清零
0109 18 15 DEC R0
010A DFFC 16 DJNZ R7, LP1
010C D0E0 17 POP ACC
010E F8 18 MOV R0, A
010F 7F10 19 MOV R7, #16
0111 C0E0 20 LP2: PUSH ACC
0113 C3 21 CLR C
0114 EC 22 MOV A, R4 ;R4中为二进制数的低位
0115 33 23 RLC A
0116 FC 24 MOV R4, A
0117 EB 25 MOV A, R3 ;R3中为二进制数的高位
0118 33 26 RLC A
0119 FB 27 MOV R3, A
011A 75F003 28 MOV B, #03H
011D E6 29 LP3: MOV A, @R0
011E 36 30 ADDC A, @R0 ;执行乘2操作
011F D4 31 DA A ;十进制调整
0120 F6 32 MOV @R0, A ;结果保存
0121 18 33 DEC R0
0122 D5F0F8 34 DJNZ B, LP3
0125 D0E0 35 POP ACC
0127 F8 36 MOV R0, A
0128 DFE7 37 DJNZ R7, LP2
012A 020100 38 LJMP MAIN ;设置断点观察结果, 可进行下一次转换
39 END
A51 MACRO ASSEMBLER ASM2_2 07/18/2005 11:22:01 PAGE 2
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
ACC. . . . . . . . D ADDR 00E0H A
B. . . . . . . . . D ADDR 00F0H A
LP1. . . . . . . . C ADDR 0108H A
LP2. . . . . . . . C ADDR 0111H A
LP3. . . . . . . . C ADDR 011DH A
MAIN . . . . . . . C ADDR 0100H A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -