📄 startup.lst
字号:
HI-TECH Software PICC Macro Assembler V9.60PL3
Fri Jan 16 14:51:46 2009
1
2 ; HI-TECH C PRO for the PIC10/12/16 MCU family
V9.60PL3
3 ; Copyright (C) 1984-2008 HI-TECH Software
4
5 ; Auto-generated runtime startup code for fina
l link stage.
6
7 ;
8 ; Compiler options:
9 ;
10 ; -omtouch_416f883.cof -mmtouch_416f883.map --
runtime=default \
11 ; --summary=default --output=default mtouch4.p
1 --chip=16F883 -P \
12 ; --opt=default -g --asmlist --errformat=Error
[%n] %f; %l.%c %s \
13 ; --msgformat=Advisory[%n] %s --warnformat=War
ning [%n] %f; %l.%c %s
14 ;
15
16
17 processor 16F883
18
19 global _main,start,_exit,reset_vec
20 fnroot _main
21 psect config,class=CONFIG,delta=2
22 psect idloc,class=IDLOC,delta=2
23 psect rbss_0,class=BANK0,space=1
24 psect rbss_1,class=BANK1,space=1
25 psect rbss_2,class=BANK2,space=1
26 psect rbss_3,class=BANK3,space=1
27 psect rdata_0,class=BANK0,space=1
28 psect rdata_1,class=BANK1,space=1
29 psect rdata_2,class=BANK2,space=1
30 psect rdata_3,class=BANK3,space=1
31 psect nvram,class=BANK0,space=1
32 psect nvram_1,class=BANK1,space=1
33 psect nvram_2,class=BANK2,space=1
34 psect nvram_3,class=BANK3,space=1
35 psect nvbit_0,class=BANK0,bit,space=1
36 psect nvbit_1,class=BANK1,bit,space=1
37 psect nvbit_2,class=BANK2,bit,space=1
38 psect nvbit_3,class=BANK3,bit,space=1
39 psect temp,ovrld,class=BANK0,space=1
40 psect struct,ovrld,class=BANK0,space=1
41 psect code,class=CODE,delta=2
42 psect rbit_0,class=BANK0,bit,space=1
43 psect ptbit_0,class=BANK0,bit,space=1
44 psect rbit_1,class=BANK1,bit,space=1
45 psect rbit_2,class=BANK2,bit,space=1
46 psect rbit_3,class=BANK3,bit,space=1
47 psect strings,class=CODE,delta=2,reloc=256
48 psect pstrings,class=CODE,delta=2
49 psect powerup,class=CODE,delta=2
50 psect reset_vec,class=CODE,delta=2
51 psect maintext,class=CODE,delta=2
52 0000 C set 0
53 0000 Z set 2
54 0000 PCL set 2
55 0000 INDF set 0
56
57 psect fnautoc,class=COMMON,space=1
58 psect common,class=COMMON,space=1
59 psect fnauto0,class=BANK0,space=1
60 psect fnauto1,class=BANK1,space=1
61 psect fnauto2,class=BANK2,space=1
62 0000 STATUS equ 3
63 0000 PCLATH equ 0Ah
64
65 psect eeprom_data,class=EEDATA,delta=2,space=2
66 psect idata,class=CODE,delta=2
67 psect idata_0,class=CODE,delta=2
68 psect idata_1,class=CODE,delta=2
69 psect idata_2,class=CODE,delta=2
70 psect idata_3,class=CODE,delta=2
71 psect intcode,class=CODE,delta=2
72 psect intret,class=CODE,delta=2
73 psect intentry,class=CODE,delta=2
74 global intlevel0,intlevel1,intlevel2, intlevel
3, intlevel4, intlevel5
75 0004 intlevel0:
76 0004 intlevel1:
77 0004 intlevel2:
78 0004 intlevel3:
79 0004 intlevel4:
80 0004 intlevel5:
81 psect intsave,class=BANK0,space=1
82 psect intsave_1,class=BANK1,space=1
83 psect intsave_2,class=BANK2,space=1
84 psect intsave_3,class=BANK3,space=1
85 psect init,class=CODE,delta=2
86 psect init23,class=CODE,delta=2
87 psect text,class=CODE,delta=2
88 psect end_init,class=CODE,delta=2
89 psect clrtext,class=CODE,delta=2
90 psect float_text0,class=CODE,delta=2,size=2048
91 psect float_text1,class=CODE,delta=2,size=2048
92 psect float_text2,class=CODE,delta=2,size=2048
93 psect float_text3,class=CODE,delta=2,size=2048
94 psect float_text4,class=CODE,delta=2,size=2048
95 0000 FSR set 4
96
97 psect reset_vec
98 0000 reset_vec:
99 ; No powerup routine
100 global start
101
102 ; jump to start
103 0000 3000 movlw start >>8
104 0001 008A movwf PCLATH
105 0002 2811 goto start & 0x7FF | (reset_vec & not 0x7FF)
106
107
108
109 psect init
110 0011 start
111 0011 _exit
112
113 ;----------------------------------------------
---------------------------------
114 ; Clear (zero) uninitialized global variables
115
116 ; 12 bytes of RAM objects in bank 0 to zero
117
118 psect init
119 global __Lrbss_0
120 0011 3046 movlw low(__Lrbss_0) ;load the low address in
to FSR
121 0012 0084 movwf FSR
122 0013 3052 movlw low(__Lrbss_0+12) ;load the high addres
s+1 into W
123 0014 118A 2020 118A fcall clear_ram ;go and zero that range of ad
dresses
124
125 psect clrtext,class=CODE,delta=2
126 global clear_ram
127 ; Called with FSR containing the base address,
and
128 ; W with the last address+1
129 0020 clear_ram:
130 0020 0064 clrwdt ;clear the watchdog before getting in
to this loop
131 0021 clrloop:
132 0021 0180 clrf INDF ;clear RAM location pointed to by F
SR
133 0022 0A84 incf FSR,f ;increment pointer to next locatio
n
134 0023 0604 xorwf FSR,w ;XOR with final address
135 0024 1903 btfsc STATUS,2 ;have we reached the end yet?
136 0025 3400 retlw 0 ;all done for this bank, return
137 0026 0604 xorwf FSR,w ;XOR again to restore value
138 0027 2821 goto clrloop ;go and do the next byte
139
140 ; No RAM objects to clear in bank 1
141 ; No RAM objects to clear in bank 2
142 ; No RAM objects to clear in bank 3
143 ; 14 bytes of RAM objects in common bank to zer
o
144
145 psect init
146 0017 1783 bsf STATUS,7 ;select indirect bank 2/3
147 global __Lcommon
148 0018 3070 movlw low(__Lcommon) ;load the low address in
to FSR
149 0019 0084 movwf FSR
150 001A 307E movlw low(__Lcommon+14) ;load the high addres
s+1 into W
151 001B 118A 2020 118A fcall clear_ram ;go and zero that range of ad
dresses
152
153
154 ;----------------------------------------------
---------------------------------
155 psect end_init
156 001E 118A 2828 ljmp _main
HI-TECH Software PICC Macro Assembler V9.60PL3
Symbol Table Fri Jan 16 14:51:46 2009
__Lrbss_0 0046 FSR 0004 INDF 0000 _main 0028
_exit 0011 start 0011 clear_ram 0020 PCLATH 000A
STATUS 0003 intlevel0 0004 intlevel1 0004 intlevel2 0004
intlevel3 0004 intlevel4 0004 intlevel5 0004 reset_vec 0000
clrloop 0021 __Lcommon 0070
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -