?? init_tny.lst
字號:
A51 MACRO ASSEMBLER INIT_TNY 04/22/2006 14:39:28 PAGE 1
MACRO ASSEMBLER A51 V6.23
OBJECT MODULE PLACED IN .\INIT_TNY.obj
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE C:\Keil\C51\LIB\INIT_TNY.A51 SET(LARGE) DEBUG PRINT(.\INIT_TNY.lst) OBJECT
(.\INIT_TNY.obj) EP
LOC OBJ LINE SOURCE
1 $nomod51
2 ;------------------------------------------------------------------------------
3 ; This file is part of the C51 Compiler package
4 ; Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc.
5 ;------------------------------------------------------------------------------
6 ; INIT_TNY.A51: This code is executed, if the application program contains
7 ; initialized variables at file level. This file is a reduced version of the
8 ; INIT.A51 file and can be used for projects that do not contain XDATA memory
9 ; initilizations.
10 ;
11 ; If you are using uVision2, just add the file as last file to your project.
12 ; *** IMPORTANT NOTE ***: this file needs to be the last file of the linker
13 ; input list. If you are using uVision2 this file should be therefore the
14 ; last file in your project tree.can
15 ;
16 ;
17 ; To translate this file manually use Ax51 with the following invocation:
18 ;
19 ; Ax51 INIT_TNY.A51
20 ;
21 ; To link the modified INIT.OBJ file to your application use the following
22 ; BL51/LX51 invocation:
23 ;
24 ; Lx51 <your object file list>, INIT_TNY.OBJ <controls>
25 ;
26 ;------------------------------------------------------------------------------
27 ;
28 ; User-defined Watch-Dog Refresh.
29 ;
30 ; If the C application contains many initialized variables uses a watchdog
31 ; it might be possible that the user has to include a watchdog refresh into
32 ; the initialization process. The watchdog refresh routine can be included
33 ; in the following MACRO and can alter all CPU registers except
34 ; DPTR.
35 ;
36 WATCHDOG MACRO
37 ; Include any Watchdog refresh code here
38 ENDM
39 ;------------------------------------------------------------------------------
40
41 ; Standard SFR Symbols
00E0 42 ACC DATA 0E0H
0082 43 DPL DATA 82H
0083 44 DPH DATA 83H
45
46 NAME ?C_INIT
47
48
49 ?C_C51STARTUP SEGMENT CODE
50 ?C_INITSEG SEGMENT CODE ; Segment with Initializing Data
51
52
53 EXTRN CODE (MAIN)
54 PUBLIC ?C_START
55
---- 56 RSEG ?C_C51STARTUP
0000 0100 F 57 INITEND: AJMP MAIN
A51 MACRO ASSEMBLER INIT_TNY 04/22/2006 14:39:28 PAGE 2
58
0002 59 IorPData: ; If CY=1 PData Values
0002 E4 60 CLR A
0003 93 61 MOVC A,@A+DPTR
0004 A3 62 INC DPTR
0005 F8 63 MOV R0,A ; Start Address
0006 E4 64 IorPLoop: CLR A
0007 93 65 MOVC A,@A+DPTR
0008 A3 66 INC DPTR
0009 F6 67 MOV @R0,A
000A 08 68 Common: INC R0
000B DFF9 69 DJNZ R7,IorPLoop
000D 8029 70 SJMP Loop
71
000F E4 72 Bits: CLR A
0010 93 73 MOVC A,@A+DPTR
0011 A3 74 INC DPTR
0012 F8 75 MOV R0,A
0013 5407 76 ANL A,#007H
0015 240C 77 ADD A,#Table-LoadTab
0017 C8 78 XCH A,R0
0018 C3 79 CLR C
0019 33 80 RLC A ; Bit Condition to Carry
001A C4 81 SWAP A
001B 540F 82 ANL A,#00FH
001D 4420 83 ORL A,#20H ; Bit Address
001F C8 84 XCH A,R0 ; convert to Byte Addressen
0020 83 85 MOVC A,@A+PC
0021 4004 86 LoadTab: JC Setzen
0023 F4 87 CPL A
0024 56 88 ANL A,@R0
0025 8001 89 SJMP BitReady
0027 46 90 Setzen: ORL A,@R0
0028 F6 91 BitReady: MOV @R0,A
0029 DFE4 92 DJNZ R7,Bits
002B 800B 93 SJMP Loop
94
002D 01 95 Table: DB 00000001B
002E 02 96 DB 00000010B
002F 04 97 DB 00000100B
0030 08 98 DB 00001000B
0031 10 99 DB 00010000B
0032 20 100 DB 00100000B
0033 40 101 DB 01000000B
0034 80 102 DB 10000000B
103
104
0035 105 ?C_START:
0035 900000 F 106 MOV DPTR,#?C_INITSEG
0038 E4 107 Loop: CLR A
0039 7E01 108 MOV R6,#1
003B 93 109 MOVC A,@A+DPTR
003C 60C2 110 JZ INITEND
003E A3 111 INC DPTR
003F FF 112 MOV R7,A
0040 543F 113 ANL A,#3FH
0042 30E509 114 JNB ACC.5,NOBIG
0045 541F 115 ANL A,#01FH
0047 FE 116 MOV R6,A
0048 E4 117 CLR A
0049 93 118 MOVC A,@A+DPTR
004A A3 119 INC DPTR
004B 6001 120 JZ NOBIG
004D 0E 121 INC R6
004E CF 122 NOBIG: XCH A,R7
004F 54C0 123 ANL A,#0C0H ; Typ is in Bit 6 and Bit 7
A51 MACRO ASSEMBLER INIT_TNY 04/22/2006 14:39:28 PAGE 3
0051 25E0 124 ADD A,ACC
0053 60AD 125 JZ IorPData
0055 40B8 126 JC Bits
0057 80FE 127 SJMP $
128
---- 129 RSEG ?C_INITSEG
0000 00 130 DB 0
131
132 ;-------------------------------------------------------------------------
133 ; STRUCTURE OF THE INITIALIZATION INFORMATION
134 ; -------------------------------------------
135 ; This section describes the initialization data generated by C51 for
136 ; explicit variable initializations (in segment ?C_INITSEC).
137 ;
138 ; Explicit variable initilizations at C source level are stored by C51 in
139 ; the segment ?C_INITSEC. All partial segments are combined at linker level
140 ; to one segment. The segment end value DB 0 is taken from this library module
141 ; INIT.A51.
142 ;
143 ; Structure of the ?C_INITSEC information:
144 ; <Info> (see below) [BYTE] ----+ repeated
145 ; <additional info> [BYTES depend on Info] ----+ repeated
146 ; 0x00 [BYTE] <end of list mark>
147 ;
148 ; <Info> has the following format:
149 ;
150 ; Bit 7 6 5 4 3 2 1 0
151 ; <Info> T T B L L L L L T=Type B=BIGBIT L=LENGTH
152 ;
153 ; If BIGBIT is set, another LENGTH BYTE FOLLOWS. The LENGHT
154 ; info of the first byte is then the HIGH part.
155 ;
156 ; Typ is one of the following:
157 ; 0 := IDATA init values; the following bytes follow:
158 ; - 1 byte address
159 ; - init data bytes according LENGTH specification
160 ;
161 ; 1 := XDATA init values; the following bytes follow:
162 ; - 2 byte address (high byte first)
163 ; - init data bytes according LENGTH specification
164 ;
165 ; 2 := PDATA init values; the following bytes follow:
166 ; - 1 byte address
167 ; - init data bytes according LENGTH specification
168 ;
169 ; 3, BIGBIT=0 := BIT init values; the followign bytes follow:
170 ; - 1 byte for each bit according LENGTH specification
171 ; this byte has the following format:
172 ;
173 ; Bit 7 6 5 4 3 2 1 0
174 ; I B B B B B B B I := state of the bit
175 ; B := bit address
176 ;
177 ; 3, BIGBIT=1 := HDATA init values; the following bytes follow:
178 ; - another LENGTH byte (since BIGBIT is always 1)
179 ; - 3 byte address (MSB first)
180 ; - data bytes according LENGTH specification
181 ;
182 ;----------------------------------------------------------------------
183
184 END
A51 MACRO ASSEMBLER INIT_TNY 04/22/2006 14:39:28 PAGE 4
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
?C_C51STARTUP. . . C SEG 0059H REL=UNIT
?C_INIT. . . . . . N NUMB -----
?C_INITSEG . . . . C SEG 0001H REL=UNIT
?C_START . . . . . C ADDR 0035H R SEG=?C_C51STARTUP
ACC. . . . . . . . D ADDR 00E0H A
BITREADY . . . . . C ADDR 0028H R SEG=?C_C51STARTUP
BITS . . . . . . . C ADDR 000FH R SEG=?C_C51STARTUP
COMMON . . . . . . C ADDR 000AH R SEG=?C_C51STARTUP
DPH. . . . . . . . D ADDR 0083H A
DPL. . . . . . . . D ADDR 0082H A
INITEND. . . . . . C ADDR 0000H R SEG=?C_C51STARTUP
IORPDATA . . . . . C ADDR 0002H R SEG=?C_C51STARTUP
IORPLOOP . . . . . C ADDR 0006H R SEG=?C_C51STARTUP
LOADTAB. . . . . . C ADDR 0021H R SEG=?C_C51STARTUP
LOOP . . . . . . . C ADDR 0038H R SEG=?C_C51STARTUP
MAIN . . . . . . . C ADDR ----- EXT
NOBIG. . . . . . . C ADDR 004EH R SEG=?C_C51STARTUP
SETZEN . . . . . . C ADDR 0027H R SEG=?C_C51STARTUP
TABLE. . . . . . . C ADDR 002DH R SEG=?C_C51STARTUP
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -