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

📄 startup.lst

📁 C language fast function point sample code example
💻 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).

⌨️ 快捷键说明

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