📄 start_ad.lst
字号:
__error__ "Extended Stack Mode requires enabled on-chip XDATA RAM"
ENDIF
144
145 IF (EXSP = 1) AND (XSTACKSTART < 100H)
__error__ "Extended Stack must start in XRAM above address 100H"
ENDIF
148
149 NAME ?C_STARTUP
150
151
152 ?C_C51STARTUP SEGMENT CODE
153
154 IF (EXSP = 1)
XSEG AT XSTACKSTART
DS STACKSIZE ; Stack Space 200H Bytes
ELSE
158 ?STACK SEGMENT IDATA
---- 159 RSEG ?STACK
0000 160 DS 1
161 ENDIF
162
163 EXTRN CODE (?C_START)
164 PUBLIC ?C_STARTUP
165
---- 166 CSEG AT 0
0000 020000 F 167 ?C_STARTUP: LJMP STARTUP1
168
---- 169 RSEG ?C_C51STARTUP
170
0000 171 STARTUP1:
172
0000 173 _CFG8xx EQU (EXSP SHL 7) OR (XRAMEN)
174
175 IF _CFG8xx
ORL CFG8xx,#_CFG8xx ; set extended memory modes
ENDIF
178
179 IF IDATALEN <> 0
0000 787F 180 MOV R0,#IDATALEN - 1
0002 E4 181 CLR A
0003 F6 182 IDATALOOP: MOV @R0,A
0004 D8FD 183 DJNZ R0,IDATALOOP
184 ENDIF
185
186 IF XDATALEN <> 0
MOV DPTR,#XDATASTART
MOV R7,#LOW (XDATALEN)
IF (LOW (XDATALEN)) <> 0
MOV R6,#(HIGH (XDATALEN)) +1
A51 MACRO ASSEMBLER START_AD 08/24/2007 00:43:38 PAGE 4
ELSE
MOV R6,#HIGH (XDATALEN)
ENDIF
CLR A
XDATALOOP: MOVX @DPTR,A
INC DPTR
DJNZ R7,XDATALOOP
DJNZ R6,XDATALOOP
ENDIF
200
201 IF PPAGEENABLE <> 0
0006 75A000 202 MOV P2,#PPAGE
203 ENDIF
204
205 IF PDATALEN <> 0
MOV R0,#PDATASTART
MOV R7,#LOW (PDATALEN)
CLR A
PDATALOOP: MOVX @R0,A
INC R0
DJNZ R7,PDATALOOP
ENDIF
213
214 IF IBPSTACK <> 0
EXTRN DATA (?C_IBP)
MOV ?C_IBP,#LOW IBPSTACKTOP
ENDIF
219
220 IF XBPSTACK <> 0
EXTRN DATA (?C_XBP)
MOV ?C_XBP,#HIGH XBPSTACKTOP
MOV ?C_XBP+1,#LOW XBPSTACKTOP
ENDIF
226
227 IF PBPSTACK <> 0
EXTRN DATA (?C_PBP)
MOV ?C_PBP,#LOW PBPSTACKTOP
ENDIF
231
232 IF EXSP = 1
MOV SP,#LOW (XSTACKSTART-1)
MOV SPH,#HIGH (XSTACKSTART-1)
ELSE
0009 758100 F 236 MOV SP,#?STACK-1
237 ENDIF
238
239 ; This code is required if you use L51_BANK.A51 with Banking Mode 4
240 ;<h> Code Banking
241 ; <q> Select Bank 0 for L51_BANK.A51 Mode 4
242
247 ;</h>
000C 020000 F 248 LJMP ?C_START
249
250 END
A51 MACRO ASSEMBLER START_AD 08/24/2007 00:43:38 PAGE 5
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
?C_C51STARTUP. . . C SEG 000FH REL=UNIT
?C_START . . . . . C ADDR ----- EXT
?C_STARTUP . . . . C ADDR 0000H A
?STACK . . . . . . I SEG 0001H REL=UNIT
CFG8XX . . . . . . D ADDR 00AFH A
EXSP . . . . . . . N NUMB 0000H A
IBPSTACK . . . . . N NUMB 0000H A
IBPSTACKTOP. . . . N NUMB 0100H A
IDATALEN . . . . . N NUMB 0080H A
IDATALOOP. . . . . C ADDR 0003H R SEG=?C_C51STARTUP
P2 . . . . . . . . D ADDR 00A0H A
PBPSTACK . . . . . N NUMB 0000H A
PBPSTACKTOP. . . . N NUMB 0000H A
PDATALEN . . . . . N NUMB 0000H A
PDATASTART . . . . N NUMB 0000H A
PPAGE. . . . . . . N NUMB 0000H A
PPAGEENABLE. . . . N NUMB 0001H A
SP . . . . . . . . D ADDR 0081H A
SPH. . . . . . . . D ADDR 00B7H A
STACKSIZE. . . . . N NUMB 0200H A
STARTUP1 . . . . . C ADDR 0000H R SEG=?C_C51STARTUP
XBPSTACK . . . . . N NUMB 0000H A
XBPSTACKTOP. . . . N NUMB 0000H A
XDATALEN . . . . . N NUMB 0000H A
XDATASTART . . . . N NUMB 0000H A
XRAMEN . . . . . . N NUMB 0000H A
XSTACKSTART. . . . N NUMB 0600H A
_CFG8XX. . . . . . N NUMB 0000H A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -