📄 init.lst
字号:
A51 MACRO ASSEMBLER INIT 08/29/2001 13:35:59 PAGE 1
MACRO ASSEMBLER A51 V7.10
OBJECT MODULE PLACED IN INIT.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE INIT.ASM SET(LARGE) DEBUG EP
LOC OBJ LINE SOURCE
1 ;------------------------------------------------------------------------------
2 ; This file is part of the C51 Compiler package
3 ; Copyright (c) 1988-1999 Keil Elektronik GmbH and Keil Software, Inc.
4 ;------------------------------------------------------------------------------
5 ; INIT.A51: This code is executed, if the application program contains
6 ; initialized variables at file level.
7 ;
8 ; To translate this file use A51 with the following invocation:
9 ;
10 ; A51 INIT.A51
11 ;
12 ; To link the modified INIT.OBJ file to your application use the following
13 ; BL51 invocation:
14 ;
15 ; BL51 <your object file list>, INIT.OBJ <controls>
16 ;
17 ;------------------------------------------------------------------------------
18 ;
19 ; User-defined Watch-Dog Refresh.
20 ;
21 ; If the C application contains many initialized variables uses a watchdog
22 ; it might be possible that the user has to include a watchdog refresh into
23 ; the initialization process. The watchdog refresh routine can be included
24 ; in the following MACRO and can alter all CPU registers except
25 ; DPTR.
26 ;
27 WATCHDOG MACRO
28 ; Include any Watchdog refresh code here
29 ENDM
30 ;------------------------------------------------------------------------------
31
32 NAME ?C_INIT
33
34
35 ?C_C51STARTUP SEGMENT CODE
36 ?C_INITSEG SEGMENT CODE ; Segment with Initializing Data
37
38
39 EXTRN CODE (MAIN)
40 PUBLIC ?C_START
41
---- 42 RSEG ?C_C51STARTUP
0000 020000 F 43 INITEND: LJMP MAIN
44
0003 45 IorPData: ; If CY=1 PData Values
0003 E4 46 CLR A
0004 93 47 MOVC A,@A+DPTR
0005 A3 48 INC DPTR
0006 F8 49 MOV R0,A ; Start Address
0007 E4 50 IorPLoop: CLR A
0008 93 51 MOVC A,@A+DPTR
0009 A3 52 INC DPTR
000A 4003 53 JC Pdata
000C F6 54 MOV @R0,A
000D 8001 55 SJMP Common
000F F2 56 PData: MOVX @R0,A
0010 08 57 Common: INC R0
0011 DFF4 58 DJNZ R7,IorPLoop
A51 MACRO ASSEMBLER INIT 08/29/2001 13:35:59 PAGE 2
0013 8029 59 SJMP Loop
60
0015 E4 61 Bits: CLR A
0016 93 62 MOVC A,@A+DPTR
0017 A3 63 INC DPTR
0018 F8 64 MOV R0,A
0019 5407 65 ANL A,#007H
001B 240C 66 ADD A,#Table-LoadTab
001D C8 67 XCH A,R0
001E C3 68 CLR C
001F 33 69 RLC A ; Bit Condition to Carry
0020 C4 70 SWAP A
0021 540F 71 ANL A,#00FH
0023 4420 72 ORL A,#20H ; Bit Address
0025 C8 73 XCH A,R0 ; convert to Byte Addressen
0026 83 74 MOVC A,@A+PC
0027 4004 75 LoadTab: JC Setzen
0029 F4 76 CPL A
002A 56 77 ANL A,@R0
002B 8001 78 SJMP BitReady
002D 46 79 Setzen: ORL A,@R0
002E F6 80 BitReady: MOV @R0,A
002F DFE4 81 DJNZ R7,Bits
0031 800B 82 SJMP Loop
83
0033 01 84 Table: DB 00000001B
0034 02 85 DB 00000010B
0035 04 86 DB 00000100B
0036 08 87 DB 00001000B
0037 10 88 DB 00010000B
0038 20 89 DB 00100000B
0039 40 90 DB 01000000B
003A 80 91 DB 10000000B
92
93
003B 94 ?C_START:
003B 900000 F 95 MOV DPTR,#?C_INITSEG
003E 96 LOOP:
97 WATCHDOG
003E E4 99 CLR A
003F 7E01 100 MOV R6,#1
0041 93 101 MOVC A,@A+DPTR
0042 60BC 102 JZ INITEND
0044 A3 103 INC DPTR
0045 FF 104 MOV R7,A
0046 543F 105 ANL A,#3FH
0048 30E509 106 JNB ACC.5,NOBIG
004B 541F 107 ANL A,#01FH
004D FE 108 MOV R6,A
004E E4 109 CLR A
004F 93 110 MOVC A,@A+DPTR
0050 A3 111 INC DPTR
0051 6001 112 JZ NOBIG
0053 0E 113 INC R6
0054 CF 114 NOBIG: XCH A,R7
0055 54C0 115 ANL A,#0C0H ; Typ is in Bit 6 and Bit 7
0057 25E0 116 ADD A,ACC
0059 60A8 117 JZ IorPDATA
005B 40B8 118 JC Bits
119
005D E4 120 XdataMem: CLR A
005E 93 121 MOVC A,@A+DPTR
005F A3 122 INC DPTR
0060 FA 123 MOV R2,A ; High
0061 E4 124 CLR A
0062 93 125 MOVC A,@A+DPTR
A51 MACRO ASSEMBLER INIT 08/29/2001 13:35:59 PAGE 3
0063 A3 126 INC DPTR
0064 F8 127 MOV R0,A ; LOW
0065 E4 128 XLoop: CLR A
0066 93 129 MOVC A,@A+DPTR
0067 A3 130 INC DPTR
0068 C8 131 XCH A,R0
0069 C582 132 XCH A,DPL
006B C8 133 XCH A,R0
006C CA 134 XCH A,R2
006D C583 135 XCH A,DPH
006F CA 136 XCH A,R2
0070 F0 137 MOVX @DPTR,A
0071 A3 138 INC DPTR
0072 C8 139 XCH A,R0
0073 C582 140 XCH A,DPL
0075 C8 141 XCH A,R0
0076 CA 142 XCH A,R2
0077 C583 143 XCH A,DPH
0079 CA 144 XCH A,R2
007A DFE9 145 DJNZ R7,XLoop
007C DEE7 146 DJNZ R6,XLoop
007E 80BE 147 SJMP Loop
148
---- 149 RSEG ?C_INITSEG
0000 00 150 DB 0
151
152 END
A51 MACRO ASSEMBLER INIT 08/29/2001 13:35:59 PAGE 4
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
?C_C51STARTUP. . . C SEG 0080H REL=UNIT
?C_INIT. . . . . . N NUMB -----
?C_INITSEG . . . . C SEG 0001H REL=UNIT
?C_START . . . . . C ADDR 003BH R SEG=?C_C51STARTUP
ACC. . . . . . . . D ADDR 00E0H A
BITREADY . . . . . C ADDR 002EH R SEG=?C_C51STARTUP
BITS . . . . . . . C ADDR 0015H R SEG=?C_C51STARTUP
COMMON . . . . . . C ADDR 0010H 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 0003H R SEG=?C_C51STARTUP
IORPLOOP . . . . . C ADDR 0007H R SEG=?C_C51STARTUP
LOADTAB. . . . . . C ADDR 0027H R SEG=?C_C51STARTUP
LOOP . . . . . . . C ADDR 003EH R SEG=?C_C51STARTUP
MAIN . . . . . . . C ADDR ----- EXT
NOBIG. . . . . . . C ADDR 0054H R SEG=?C_C51STARTUP
PDATA. . . . . . . C ADDR 000FH R SEG=?C_C51STARTUP
SETZEN . . . . . . C ADDR 002DH R SEG=?C_C51STARTUP
TABLE. . . . . . . C ADDR 0033H R SEG=?C_C51STARTUP
XDATAMEM . . . . . C ADDR 005DH R SEG=?C_C51STARTUP
XLOOP. . . . . . . C ADDR 0065H 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 + -