📄 myasm.lst
字号:
A51 MACRO ASSEMBLER MYASM 08/04/2004 20:42:29 PAGE 1
MACRO ASSEMBLER A51 V7.09
OBJECT MODULE PLACED IN MyAsm.OBJ
ASSEMBLER INVOKED BY: C:\Program Files\Keil\C51\BIN\A51.EXE MyAsm.a51 SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1
2 ; 汇编代码部分
3 $nomod51
4
5 NAME MYASM
6
7 ;#include "REG51.H" ; 头文件在当前目录下,允许重复说明
+1 8
+1 9
+1 10
+1 11
+1 12
+1 13
+1 14
+1 15
+1 16
0080 +1 17 sfr P0 = 0x80;
0090 +1 18 sfr P1 = 0x90;
00A0 +1 19 sfr P2 = 0xA0;
00B0 +1 20 sfr P3 = 0xB0;
00D0 +1 21 sfr PSW = 0xD0;
00E0 +1 22 sfr ACC = 0xE0;
00F0 +1 23 sfr B = 0xF0;
0081 +1 24 sfr SP = 0x81;
0082 +1 25 sfr DPL = 0x82;
0083 +1 26 sfr DPH = 0x83;
0087 +1 27 sfr PCON = 0x87;
0088 +1 28 sfr TCON = 0x88;
0089 +1 29 sfr TMOD = 0x89;
008A +1 30 sfr TL0 = 0x8A;
008B +1 31 sfr TL1 = 0x8B;
008C +1 32 sfr TH0 = 0x8C;
008D +1 33 sfr TH1 = 0x8D;
00A8 +1 34 sfr IE = 0xA8;
00B8 +1 35 sfr IP = 0xB8;
0098 +1 36 sfr SCON = 0x98;
0099 +1 37 sfr SBUF = 0x99;
+1 38
+1 39
+1 40
+1 41
00D7 +1 42 sbit CY = 0xD7;
00D6 +1 43 sbit AC = 0xD6;
00D5 +1 44 sbit F0 = 0xD5;
00D4 +1 45 sbit RS1 = 0xD4;
00D3 +1 46 sbit RS0 = 0xD3;
00D2 +1 47 sbit OV = 0xD2;
00D0 +1 48 sbit P = 0xD0;
+1 49
+1 50
008F +1 51 sbit TF1 = 0x8F;
008E +1 52 sbit TR1 = 0x8E;
008D +1 53 sbit TF0 = 0x8D;
008C +1 54 sbit TR0 = 0x8C;
008B +1 55 sbit IE1 = 0x8B;
008A +1 56 sbit IT1 = 0x8A;
0089 +1 57 sbit IE0 = 0x89;
0088 +1 58 sbit IT0 = 0x88;
A51 MACRO ASSEMBLER MYASM 08/04/2004 20:42:29 PAGE 2
+1 59
+1 60
00AF +1 61 sbit EA = 0xAF;
00AC +1 62 sbit ES = 0xAC;
00AB +1 63 sbit ET1 = 0xAB;
00AA +1 64 sbit EX1 = 0xAA;
00A9 +1 65 sbit ET0 = 0xA9;
00A8 +1 66 sbit EX0 = 0xA8;
+1 67
+1 68
00BC +1 69 sbit PS = 0xBC;
00BB +1 70 sbit PT1 = 0xBB;
00BA +1 71 sbit PX1 = 0xBA;
00B9 +1 72 sbit PT0 = 0xB9;
00B8 +1 73 sbit PX0 = 0xB8;
+1 74
+1 75
00B7 +1 76 sbit RD = 0xB7;
00B6 +1 77 sbit WR = 0xB6;
00B5 +1 78 sbit T1 = 0xB5;
00B4 +1 79 sbit T0 = 0xB4;
00B3 +1 80 sbit INT1 = 0xB3;
00B2 +1 81 sbit INT0 = 0xB2;
00B1 +1 82 sbit TXD = 0xB1;
00B0 +1 83 sbit RXD = 0xB0;
+1 84
+1 85
009F +1 86 sbit SM0 = 0x9F;
009E +1 87 sbit SM1 = 0x9E;
009D +1 88 sbit SM2 = 0x9D;
009C +1 89 sbit REN = 0x9C;
009B +1 90 sbit TB8 = 0x9B;
009A +1 91 sbit RB8 = 0x9A;
0099 +1 92 sbit TI = 0x99;
0098 +1 93 sbit RI = 0x98;
94
95
96 ?PR?_fnAdd?MYASM SEGMENT CODE ; 码段定义叙述,需要对本文件内的所有
97 ?PR?_fnSub?MYASM SEGMENT CODE ; 函数进行描述
98 ?PR?timerCt0?MYASM SEGMENT CODE
99
100 EXTRN DATA (aa) ; 全局变量在主程序中已有定义
101 extrn CODE (_fnMul) ; 外部C函数调用说明
102 PUBLIC timerCt0 ; 对外传递函数名叙述
103 PUBLIC _fnSub
104 PUBLIC _fnAdd
105
106 ;------------------------------------------------------------------------
107 ; 相对应于C函数的函数格式:
108 ; unsigned char fnAdd( unsigned char x ,unsigned char y )
109 ;------------------------------------------------------------------------
---- 110 RSEG ?PR?_fnAdd?MYASM
0000 111 _fnAdd:
112 USING 0
0000 C0E0 113 PUSH ACC
0002 120000 F 114 lcall _fnMul ; *** 调用C函数 ***
0005 EF 115 MOV A,R7
0006 2D 116 ADD A,R5
0007 FF 117 MOV R7,A
0008 D0E0 118 POP ACC
000A 119 ?C0001:
000A 22 120 RET
121 ;------------------------------------------------------------------------
122 ; 相对应于C函数的函数格式:
123 ; unsigned char fnSub( unsigned char x ,unsigned char y )
124 ;------------------------------------------------------------------------
A51 MACRO ASSEMBLER MYASM 08/04/2004 20:42:29 PAGE 3
125
---- 126 RSEG ?PR?_fnSub?MYASM
0000 127 _fnSub:
128 USING 0
0000 C0E0 129 PUSH ACC
0002 C3 130 CLR C
0003 EF 131 MOV A,R7
0004 9D 132 SUBB A,R5
0005 FF 133 MOV R7,A
0006 D0E0 134 POP ACC
0008 135 ?C0002:
0008 22 136 RET
137
138
139 ;-----------------------------------------------------------------------
140 ; 中断函数中断号对应向量表的说明,如果还有其他中断使用汇编的,请一并顺序
141 ; 在此叙述。
142 ;-----------------------------------------------------------------------
---- 143 CSEG AT 0000BH ; 定时中断0
000B 020000 F 144 LJMP timerCt0
145
146 ;------------------------------------------------------------------------
147 ; 相对应于C函数的函数格式:
148 ; void timerCt0(void) interrupt 1
149 ; 这是一个定时中断函数,作为演示没有做太多的处理,仅仅对(int)aa++。中断函
150 ; 数须要特别留意现场保护
151 ;------------------------------------------------------------------------
152
---- 153 RSEG ?PR?timerCt0?MYASM
154 USING 0
0000 155 timerCt0:
0000 C0E0 156 PUSH ACC
0002 C0D0 157 PUSH PSW
0004 758CFF 158 MOV TH0,#0FFH
0007 758AE0 159 MOV TL0,#0E0H
000A 0500 F 160 INC aa+01H
000C E500 F 161 MOV A,aa+01H
000E 7002 162 JNZ ?C0004
0010 0500 F 163 INC aa
0012 164 ?C0004:
0012 D0D0 165 POP PSW
0014 D0E0 166 POP ACC
0016 32 167 RETI
168
169 END
A51 MACRO ASSEMBLER MYASM 08/04/2004 20:42:29 PAGE 4
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
?C0001 . . . . . . C ADDR 000AH R SEG=?PR?_FNADD?MYASM
?C0002 . . . . . . C ADDR 0008H R SEG=?PR?_FNSUB?MYASM
?C0004 . . . . . . C ADDR 0012H R SEG=?PR?TIMERCT0?MYASM
?PR?TIMERCT0?MYASM C SEG 0017H REL=UNIT
?PR?_FNADD?MYASM . C SEG 000BH REL=UNIT
?PR?_FNSUB?MYASM . C SEG 0009H REL=UNIT
AA . . . . . . . . D ADDR ----- EXT
AC . . . . . . . . B ADDR 00D0H.6 A
ACC. . . . . . . . D ADDR 00E0H A
B. . . . . . . . . D ADDR 00F0H A
CY . . . . . . . . B ADDR 00D0H.7 A
DPH. . . . . . . . D ADDR 0083H A
DPL. . . . . . . . D ADDR 0082H A
EA . . . . . . . . B ADDR 00A8H.7 A
ES . . . . . . . . B ADDR 00A8H.4 A
ET0. . . . . . . . B ADDR 00A8H.1 A
ET1. . . . . . . . B ADDR 00A8H.3 A
EX0. . . . . . . . B ADDR 00A8H.0 A
EX1. . . . . . . . B ADDR 00A8H.2 A
F0 . . . . . . . . B ADDR 00D0H.5 A
IE . . . . . . . . D ADDR 00A8H A
IE0. . . . . . . . B ADDR 0088H.1 A
IE1. . . . . . . . B ADDR 0088H.3 A
INT0 . . . . . . . B ADDR 00B0H.2 A
INT1 . . . . . . . B ADDR 00B0H.3 A
IP . . . . . . . . D ADDR 00B8H A
IT0. . . . . . . . B ADDR 0088H.0 A
IT1. . . . . . . . B ADDR 0088H.2 A
MYASM. . . . . . . N NUMB -----
OV . . . . . . . . B ADDR 00D0H.2 A
P. . . . . . . . . B ADDR 00D0H.0 A
P0 . . . . . . . . D ADDR 0080H A
P1 . . . . . . . . D ADDR 0090H A
P2 . . . . . . . . D ADDR 00A0H A
P3 . . . . . . . . D ADDR 00B0H A
PCON . . . . . . . D ADDR 0087H A
PS . . . . . . . . B ADDR 00B8H.4 A
PSW. . . . . . . . D ADDR 00D0H A
PT0. . . . . . . . B ADDR 00B8H.1 A
PT1. . . . . . . . B ADDR 00B8H.3 A
PX0. . . . . . . . B ADDR 00B8H.0 A
PX1. . . . . . . . B ADDR 00B8H.2 A
RB8. . . . . . . . B ADDR 0098H.2 A
RD . . . . . . . . B ADDR 00B0H.7 A
REN. . . . . . . . B ADDR 0098H.4 A
RI . . . . . . . . B ADDR 0098H.0 A
RS0. . . . . . . . B ADDR 00D0H.3 A
RS1. . . . . . . . B ADDR 00D0H.4 A
RXD. . . . . . . . B ADDR 00B0H.0 A
SBUF . . . . . . . D ADDR 0099H A
SCON . . . . . . . D ADDR 0098H A
SM0. . . . . . . . B ADDR 0098H.7 A
SM1. . . . . . . . B ADDR 0098H.6 A
SM2. . . . . . . . B ADDR 0098H.5 A
SP . . . . . . . . D ADDR 0081H A
T0 . . . . . . . . B ADDR 00B0H.4 A
T1 . . . . . . . . B ADDR 00B0H.5 A
TB8. . . . . . . . B ADDR 0098H.3 A
TCON . . . . . . . D ADDR 0088H A
TF0. . . . . . . . B ADDR 0088H.5 A
A51 MACRO ASSEMBLER MYASM 08/04/2004 20:42:29 PAGE 5
TF1. . . . . . . . B ADDR 0088H.7 A
TH0. . . . . . . . D ADDR 008CH A
TH1. . . . . . . . D ADDR 008DH A
TI . . . . . . . . B ADDR 0098H.1 A
TIMERCT0 . . . . . C ADDR 0000H R SEG=?PR?TIMERCT0?MYASM
TL0. . . . . . . . D ADDR 008AH A
TL1. . . . . . . . D ADDR 008BH A
TMOD . . . . . . . D ADDR 0089H A
TR0. . . . . . . . B ADDR 0088H.4 A
TR1. . . . . . . . B ADDR 0088H.6 A
TXD. . . . . . . . B ADDR 00B0H.1 A
WR . . . . . . . . B ADDR 00B0H.6 A
_FNADD . . . . . . C ADDR 0000H R SEG=?PR?_FNADD?MYASM
_FNMUL . . . . . . C ADDR ----- EXT
_FNSUB . . . . . . C ADDR 0000H R SEG=?PR?_FNSUB?MYASM
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -