⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 startup.lst

📁 基于KEIL51的一款高性能的数字功放的完整代码
💻 LST
字号:
AX51 MACRO ASSEMBLER  STARTUP                                                               10/15/06 22:08:31 PAGE     1


MACRO ASSEMBLER AX51 V3.01a
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.
 0080                    30     IDATALEN        EQU     80H
                         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     ;<h> Reentrant Stack Initialization
                         52     ;
                         53     ;  The following EQU statements define the stack pointer for reentrant
                         54     ;  functions and initialized it:
                         55     ;
                         56     ; <h> Stack Space for reentrant functions in the SMALL model.
                         57     ;  <q> IBPSTACK: Enable SMALL model reentrant stack
                         58     ;     <i> Stack space for reentrant functions in the SMALL model.
AX51 MACRO ASSEMBLER  STARTUP                                                               10/15/06 22:08:31 PAGE     2

 0000                    59     IBPSTACK        EQU     0       ; set to 1 if small reentrant is used.
                         60     ;  <o> IBPSTACKTOP: End address of SMALL model stack <0x0-0xFF>
                         61     ;     <i> Set the top of the stack to the highest location.
 0100                    62     IBPSTACKTOP     EQU     0xFF +1     ; default 0FFH+1  
                         63     ; </h>
                         64     ;
                         65     ; <h> Stack Space for reentrant functions in the LARGE model.      
                         66     ;  <q> XBPSTACK: Enable LARGE model reentrant stack
                         67     ;     <i> Stack space for reentrant functions in the LARGE model.
 0000                    68     XBPSTACK        EQU     0       ; set to 1 if large reentrant is used.
                         69     ;  <o> XBPSTACKTOP: End address of LARGE model stack <0x0-0xFFFF>
                         70     ;     <i> Set the top of the stack to the highest location.
 00010000                71     XBPSTACKTOP     EQU     0xFFFF +1   ; default 0FFFFH+1 
                         72     ; </h>
                         73     ;
                         74     ; <h> Stack Space for reentrant functions in the COMPACT model.    
                         75     ;  <q> PBPSTACK: Enable COMPACT model reentrant stack
                         76     ;     <i> Stack space for reentrant functions in the COMPACT model.
 0000                    77     PBPSTACK        EQU     0       ; set to 1 if compact reentrant is used.
                         78     ;
                         79     ;   <o> PBPSTACKTOP: End address of COMPACT model stack <0x0-0xFFFF>
                         80     ;     <i> Set the top of the stack to the highest location.
 0100                    81     PBPSTACKTOP     EQU     0xFF +1     ; default 0FFH+1  
                         82     ; </h>
                         83     ;</h>
                         84     ;------------------------------------------------------------------------------
                         85     ;
                         86     ;  Memory Page for Using the Compact Model with 64 KByte xdata RAM
                         87     ;  <e>Compact Model Page Definition
                         88     ;
                         89     ;  <i>Define the XDATA page used for PDATA variables. 
                         90     ;  <i>PPAGE must conform with the PPAGE set in the linker invocation.
                         91     ;
                         92     ; Enable pdata memory page initalization
 0000                    93     PPAGEENABLE     EQU     0       ; set to 1 if pdata object are used.
                         94     ;
                         95     ; <o> PPAGE number <0x0-0xFF> 
                         96     ; <i> uppermost 256-byte address of the page used for PDATA variables.
 0000                    97     PPAGE           EQU     0
                         98     ;
                         99     ; <o> SFR address which supplies uppermost address byte <0x0-0xFF> 
                        100     ; <i> most 8051 variants use P2 as uppermost address byte
 00A0                   101     PPAGE_SFR       DATA    0A0H
                        102     ;
                        103     ; </e>
                        104     ;------------------------------------------------------------------------------
                        105     
                        106     ; Standard SFR Symbols 
 00E0                   107     ACC     DATA    0E0H
 00F0                   108     B       DATA    0F0H
 0081                   109     SP      DATA    81H
 0082                   110     DPL     DATA    82H
 0083                   111     DPH     DATA    83H
                        112     
                        113                     NAME    ?C_STARTUP
                        114     
                        115     
------                  116     ?C_C51STARTUP   SEGMENT   CODE
------                  117     ?STACK          SEGMENT   IDATA
                        118     
------                  119                     RSEG    ?STACK
000000                  120                     DS      1
                        121     
                        122                     EXTRN CODE (?C_START)
                        123                     PUBLIC  ?C_STARTUP
                        124     
AX51 MACRO ASSEMBLER  STARTUP                                                               10/15/06 22:08:31 PAGE     3

000000                  125                     CSEG    AT      0
000000 020000     F     126     ?C_STARTUP:     LJMP    STARTUP1
                        127     
------                  128                     RSEG    ?C_C51STARTUP
                        129     
000000                  130     STARTUP1:
                        131     
                        132     IF IDATALEN <> 0
000000 787F             133                     MOV     R0,#IDATALEN - 1
000002 E4               134                     CLR     A
000003 F6               135     IDATALOOP:      MOV     @R0,A
000004 D8FD             136                     DJNZ    R0,IDATALOOP
                        137     ENDIF
                        138     
                        139     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
                        153     
                        154     IF PPAGEENABLE <> 0
                                                MOV     PPAGE_SFR,#PPAGE
                                ENDIF
                        157     
                        158     IF PDATALEN <> 0
                                                MOV     R0,#LOW (PDATASTART)
                                                MOV     R7,#LOW (PDATALEN)
                                                CLR     A
                                PDATALOOP:      MOVX    @R0,A
                                                INC     R0
                                                DJNZ    R7,PDATALOOP
                                ENDIF
                        166     
                        167     IF IBPSTACK <> 0
                                EXTRN DATA (?C_IBP)
                                
                                                MOV     ?C_IBP,#LOW IBPSTACKTOP
                                ENDIF
                        172     
                        173     IF XBPSTACK <> 0
                                EXTRN DATA (?C_XBP)
                                
                                                MOV     ?C_XBP,#HIGH XBPSTACKTOP
                                                MOV     ?C_XBP+1,#LOW XBPSTACKTOP
                                ENDIF
                        179     
                        180     IF PBPSTACK <> 0
                                EXTRN DATA (?C_PBP)
                                                MOV     ?C_PBP,#LOW PBPSTACKTOP
                                ENDIF
                        184     
000006 758100     F     185                     MOV     SP,#?STACK-1
                        186     
                        187     ; This code is required if you use L51_BANK.A51 with Banking Mode 4
                        188     ;<h> Code Banking
                        189     ; <q> Select Bank 0 for L51_BANK.A51 Mode 4
                        190     
AX51 MACRO ASSEMBLER  STARTUP                                                               10/15/06 22:08:31 PAGE     4

                                
                                
                                                
                                
                        195     ;</h>
000009 020000     E     196                     LJMP    ?C_START
                        197     
                        198                     END
AX51 MACRO ASSEMBLER  STARTUP                                                               10/15/06 22:08:31 PAGE     5

SYMBOL TABLE LISTING
------ ----- -------


N A M E                        T Y P E  V A L U E     ATTRIBUTES

?C_C51STARTUP . . . . . . . .  C  SEG   00000CH       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  0080H     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  0000H     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).

⌨️ 快捷键说明

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