?? startup.lst
字號:
AX51 MACRO ASSEMBLER STARTUP 08/25/07 12:42:00 PAGE 1
MACRO ASSEMBLER AX51 V3.01
OBJECT MODULE PLACED IN STARTUP.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\AX51.EXE STARTUP.A51 SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1 $nomod51
2 ;------------------------------------------------------------------------------
3 ; This file is part of the C51 Compiler package
4 ; Copyright (c) 1988-2005 Keil Elektronik GmbH and Keil Software, Inc.
5 ; Version 8.01
6 ;
7 ; *** <<< Use Configuration Wizard in Context Menu >>> ***
8 ;------------------------------------------------------------------------------
9 ; STARTUP.A51: This code is executed after processor reset.
10 ;
11 ; To translate this file use A51 with the following invocation:
12 ;
13 ; A51 STARTUP.A51
14 ;
15 ; To link the modified STARTUP.OBJ file to your application use the following
16 ; Lx51 invocation:
17 ;
18 ; Lx51 your object file list, STARTUP.OBJ controls
19 ;
20 ;------------------------------------------------------------------------------
21 ;
22 ; User-defined <h> Power-On Initialization of Memory
23 ;
24 ; With the following EQU statements the initialization of memory
25 ; at processor reset can be defined:
26 ;
27 ; <o> IDATALEN: IDATA memory size <0x0-0x100>
28 ; <i> Note: The absolute start-address of IDATA memory is always 0
29 ; <i> The IDATA space overlaps physically the DATA and BIT areas.
0100 30 IDATALEN EQU 256
31 ;
32 ; <o> XDATASTART: XDATA memory start address <0x0-0xFFFF>
33 ; <i> The absolute start address of XDATA memory
0000 34 XDATASTART EQU 0
35 ;
36 ; <o> XDATALEN: XDATA memory size <0x0-0xFFFF>
37 ; <i> The length of XDATA memory in bytes.
0000 38 XDATALEN EQU 0
39 ;
40 ; <o> PDATASTART: PDATA memory start address <0x0-0xFFFF>
41 ; <i> The absolute start address of PDATA memory
0000 42 PDATASTART EQU 0H
43 ;
44 ; <o> PDATALEN: PDATA memory size <0x0-0xFF>
45 ; <i> The length of PDATA memory in bytes.
0000 46 PDATALEN EQU 0H
47 ;
48 ;</h>
49
50 ;------------------------------------------------------------------------------
51 ;
52 ;<h> Reentrant Stack Initialization
53 ;
54 ; The following EQU statements define the stack pointer for reentrant
55 ; functions and initialized it:
56 ;
57 ; <h> Stack Space for reentrant functions in the SMALL model.
58 ; <q> IBPSTACK: Enable SMALL model reentrant stack
AX51 MACRO ASSEMBLER STARTUP 08/25/07 12:42:00 PAGE 2
59 ; <i> Stack space for reentrant functions in the SMALL model.
0000 60 IBPSTACK EQU 0 ; set to 1 if small reentrant is used.
61 ; <o> IBPSTACKTOP: End address of SMALL model stack <0x0-0xFF>
62 ; <i> Set the top of the stack to the highest location.
0100 63 IBPSTACKTOP EQU 0xFF +1 ; default 0FFH+1
64 ; </h>
65 ;
66 ; <h> Stack Space for reentrant functions in the LARGE model.
67 ; <q> XBPSTACK: Enable LARGE model reentrant stack
68 ; <i> Stack space for reentrant functions in the LARGE model.
0000 69 XBPSTACK EQU 0 ; set to 1 if large reentrant is used.
70 ; <o> XBPSTACKTOP: End address of LARGE model stack <0x0-0xFFFF>
71 ; <i> Set the top of the stack to the highest location.
00010000 72 XBPSTACKTOP EQU 0xFFFF +1 ; default 0FFFFH+1
73 ; </h>
74 ;
75 ; <h> Stack Space for reentrant functions in the COMPACT model.
76 ; <q> PBPSTACK: Enable COMPACT model reentrant stack
77 ; <i> Stack space for reentrant functions in the COMPACT model.
0000 78 PBPSTACK EQU 0 ; set to 1 if compact reentrant is used.
79 ;
80 ; <o> PBPSTACKTOP: End address of COMPACT model stack <0x0-0xFFFF>
81 ; <i> Set the top of the stack to the highest location.
0100 82 PBPSTACKTOP EQU 0xFF +1 ; default 0FFH+1
83 ; </h>
84 ;</h>
85 ;------------------------------------------------------------------------------
86 ;
87 ; Memory Page for Using the Compact Model with 64 KByte xdata RAM
88 ; <e>Compact Model Page Definition
89 ;
90 ; <i>Define the XDATA page used for PDATA variables.
91 ; <i>PPAGE must conform with the PPAGE set in the linker invocation.
92 ;
93 ; Enable pdata memory page initalization
0001 94 PPAGEENABLE EQU 1 ; set to 1 if pdata object are used.
95 ;
96 ; <o> PPAGE number <0x0-0xFF>
97 ; <i> uppermost 256-byte address of the page used for PDATA variables.
0000 98 PPAGE EQU 0
99 ;
100 ; <o> SFR address which supplies uppermost address byte <0x0-0xFF>
101 ; <i> most 8051 variants use P2 as uppermost address byte
00A0 102 PPAGE_SFR DATA 0A0H
103 ;
104 ; </e>
105 ;------------------------------------------------------------------------------
106
107 ; Standard SFR Symbols
00E0 108 ACC DATA 0E0H
00F0 109 B DATA 0F0H
0081 110 SP DATA 81H
0082 111 DPL DATA 82H
0083 112 DPH DATA 83H
113
114 NAME ?C_STARTUP
115
116
------ 117 ?C_C51STARTUP SEGMENT CODE
------ 118 ?STACK SEGMENT IDATA
119
------ 120 RSEG ?STACK
000000 121 DS 1
122
123 EXTRN CODE (?C_START)
124 PUBLIC ?C_STARTUP
AX51 MACRO ASSEMBLER STARTUP 08/25/07 12:42:00 PAGE 3
125
000000 126 CSEG AT 0
000000 020000 F 127 ?C_STARTUP: LJMP STARTUP1
128
------ 129 RSEG ?C_C51STARTUP
130
000000 131 STARTUP1:
132
133 IF IDATALEN <> 0
000000 78FF 134 MOV R0,#IDATALEN - 1
000002 E4 135 CLR A
000003 F6 136 IDATALOOP: MOV @R0,A
000004 D8FD 137 DJNZ R0,IDATALOOP
138 ENDIF
139
140 IF XDATALEN <> 0
MOV DPTR,#XDATASTART
MOV R7,#LOW (XDATALEN)
IF (LOW (XDATALEN)) <> 0
MOV R6,#(HIGH (XDATALEN)) +1
ELSE
MOV R6,#HIGH (XDATALEN)
ENDIF
CLR A
XDATALOOP: MOVX @DPTR,A
INC DPTR
DJNZ R7,XDATALOOP
DJNZ R6,XDATALOOP
ENDIF
154
155 IF PPAGEENABLE <> 0
000006 75A000 156 MOV PPAGE_SFR,#PPAGE
157 ENDIF
158
159 IF PDATALEN <> 0
MOV R0,#LOW (PDATASTART)
MOV R7,#LOW (PDATALEN)
CLR A
PDATALOOP: MOVX @R0,A
INC R0
DJNZ R7,PDATALOOP
ENDIF
167
168 IF IBPSTACK <> 0
EXTRN DATA (?C_IBP)
MOV ?C_IBP,#LOW IBPSTACKTOP
ENDIF
173
174 IF XBPSTACK <> 0
EXTRN DATA (?C_XBP)
MOV ?C_XBP,#HIGH XBPSTACKTOP
MOV ?C_XBP+1,#LOW XBPSTACKTOP
ENDIF
180
181 IF PBPSTACK <> 0
EXTRN DATA (?C_PBP)
MOV ?C_PBP,#LOW PBPSTACKTOP
ENDIF
185
000009 758100 F 186 MOV SP,#?STACK-1
187
188 ; This code is required if you use L51_BANK.A51 with Banking Mode 4
189 ;<h> Code Banking
190 ; <q> Select Bank 0 for L51_BANK.A51 Mode 4
AX51 MACRO ASSEMBLER STARTUP 08/25/07 12:42:00 PAGE 4
191
196 ;</h>
00000C 020000 E 197 LJMP ?C_START
198
199 END
AX51 MACRO ASSEMBLER STARTUP 08/25/07 12:42:00 PAGE 5
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
?C_C51STARTUP . . . . . . . . C SEG 00000FH REL=UNIT, ALN=BYTE
?C_START. . . . . . . . . . . C ADDR ------- EXT
?C_STARTUP. . . . . . . . . . C ADDR 0000H R SEG=?CO?STARTUP?3
?STACK. . . . . . . . . . . . I SEG 000001H REL=UNIT, ALN=BYTE
ACC . . . . . . . . . . . . . D ADDR 00E0H A
B . . . . . . . . . . . . . . D ADDR 00F0H A
DPH . . . . . . . . . . . . . D ADDR 0083H A
DPL . . . . . . . . . . . . . D ADDR 0082H A
IBPSTACK. . . . . . . . . . . N NUMB 0000H A
IBPSTACKTOP . . . . . . . . . N NUMB 0100H A
IDATALEN. . . . . . . . . . . N NUMB 0100H A
IDATALOOP . . . . . . . . . . C ADDR 0003H R SEG=?C_C51STARTUP
PBPSTACK. . . . . . . . . . . N NUMB 0000H A
PBPSTACKTOP . . . . . . . . . N NUMB 0100H A
PDATALEN. . . . . . . . . . . N NUMB 0000H A
PDATASTART. . . . . . . . . . N NUMB 0000H A
PPAGE . . . . . . . . . . . . N NUMB 0000H A
PPAGE_SFR . . . . . . . . . . D ADDR 00A0H A
PPAGEENABLE . . . . . . . . . N NUMB 0001H A
SP. . . . . . . . . . . . . . D ADDR 0081H A
STARTUP1. . . . . . . . . . . C ADDR 0000H R SEG=?C_C51STARTUP
XBPSTACK. . . . . . . . . . . N NUMB 0000H A
XBPSTACKTOP . . . . . . . . . N NUMB 00010000H A
XDATALEN. . . . . . . . . . . N NUMB 0000H A
XDATASTART. . . . . . . . . . N NUMB 0000H A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S).
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -