📄 main.lst
字号:
HI-TECH Software PICC Macro Assembler V9.60
Fri Nov 02 10:08:24 2007
1 processor 16F887
2 opt pw 79
3 psect config,global,class=CONFIG,delta=2
4 psect strings,global,class=STRING,delta=2
5 psect const1,local,class=CONST,delta=2
6 psect const2,local,class=CONST,delta=2
7 psect text2,local,class=CODE,delta=2
8 psect intcode,global,class=CODE,delta=2
9 psect intsave_0,global,ovrld,class=COMBANK,spa
+ ce=1,delta=1
10 psect intret,global,class=CODE,delta=2
11 psect intentry,global,class=CODE,delta=2
12 psect intsave,global,class=BANK0,space=1,delta
+ =1
13 psect text6,local,class=CODE,delta=2
14 psect text7,local,class=CODE,delta=2
15 psect text8,local,class=CODE,delta=2
16 psect rbss_0,global,class=BANK0,space=1,delta=
+ 1
17 psect rbss_2,global,class=BANK2,space=1,delta=
+ 1
18 psect rbss_3,global,class=BANK3,space=1,delta=
+ 1
19 psect temp,global,ovrld,class=BANK0,space=1,de
+ lta=1
20 0000
21 0000
22 0000
23 0000
24 0000
25 0000
26 0000
27 0000
28 0000
29 0000 ;#
30
31 psect config
32 0000' 20C4 dw 8388 ;#
33
34 psect const1
35 0000' 0782 addwf 2
36 0001' _COMP1
37 0001' 3494 retlw -108
38 0002' 3495 retlw -107
39
40 psect const2
41 0000' 0782 addwf 2
42 0001' _COMP2
43 0001' 34A0 retlw -96
44 0002' 34A1 retlw -95
45
46 psect intcode
47 0000' _isr
48 0000' int_func
49 ;main.c: 375: void interrupt isr(void)
50 0000' 190B btfsc 11,2
51 0001' 1E8B btfss 11,5
52 0002' 2800' goto l109
53 ;main.c: 382: TMR1ON = 0;
54 0003' 1283 bcf 3,5
55 0004' 1303 bcf 3,6 ;carry unused
56 0005' 1010 bcf 16,0
57 ;main.c: 384: if (Flags.SSPBF == 1)
58 0006' 1C00' btfss _Flags,0
59 0007' 2800' goto l110
60 ;main.c: 385: RestartTimers();
61 0008' 120A' 118A' 2000' fcall _RestartTimers
+ 120A' 118A'
62 000D' 2800' goto l109
63 000E' l110
64 ;main.c: 386: else
65 000E' 120A' 118A' 2000' fcall _CapISR
+ 120A' 118A'
66 0013' l109
67 ;main.c: 388: }
68 0013' 1283 bcf 3,5
69 0014' 1303 bcf 3,6 ;carry unused
70 0015' 1D8C btfss 12,3
71 0016' 2800' goto l112
72 0017' 1683 bsf 3,5
73 0018' 1D8C btfss 12,3
74 0019' 2800' goto l112
75 ;main.c: 393: SSPISR();
76 001A' 120A' 118A' 2000' fcall _SSPISR
+ 120A' 118A'
77 001F' l112
78 ;main.c: 397: if (T0IF == 1)
79 001F' 1D0B btfss 11,2
80 0020' 2800' goto l108
81 ;main.c: 398: RestartTimers();
82 0021' 120A' 118A' 2000' fcall _RestartTimers
+ 120A' 118A'
83 ;main.c: 400: }
84 0026' l108
85 0026' 1303 bcf 3,6 ;carry unused
86 0027' 1283 bcf 3,5
87
88 psect intsave_0
89 0000' saved_w
90 0000' ds 1
91
92 psect intret
93 0000' 0800' movf saved_fsr,w
94 0001' 0084 movwf 4 ;restore FSR
95 0002' 0800' movf saved_pclath,w
96 0003' 008A movwf 10
97 0004' int_restore
98 0004' 0800' movf saved_status,w
99 0005' 0083 movwf 3
100 0006' 0E80' swapf saved_w
101 0007' 0E00' swapf saved_w,w
102 0008' 0009 retfie
103
104 psect intentry
105 0000' int_entry
106 0000' 0080' movwf saved_w
107 0001' 0803 movf 3,w
108 0002' 0183 clrf 3
109 0003' 0080' movwf saved_status
110 0004' 0804 movf 4,w
111 0005' 0080' movwf saved_fsr
112 0006' 080A movf 10,w
113 0007' 0080' movwf saved_pclath
114 0008' 018A clrf 10
115
116 psect intsave
117 0000' saved_status
118 0000' ds 1
119 0001' saved_fsr
120 0001' ds 1
121 0002' saved_pclath
122 0002' ds 1
123
124 psect text6
125 0000' _SetNextChannel
126 ;main.c: 720: void SetNextChannel(void) {
127 0000' 3010 movlw 16
128 0001' 0183 clrf 3 ;select bank 0
129 0002' 0200' subwf _INDEX,w
130 0003' 1803 btfsc 3,0
131 0004' 2800' goto l191
132 ;main.c: 727: INDEX++;
133 0005' 0A80' incf _INDEX
134 ;main.c: 728: RB3 = (INDEX <= 8) ? 1 : 0;
135 0006' 3009 movlw 9
136 0007' 0200' subwf _INDEX,w
137 0008' 1803 btfsc 3,0
138 0009' 2800' goto u1300
139 000A' 1586 bsf 6,3
140 000B' 2800' goto u1314
141 000C' u1300
142 000C' 1186 bcf 6,3
143 000D' u1314
144 ;main.c: 729: PORTB &= 0xF8;
145 000D' 30F8 movlw -8
146 000E' 0586 andwf 6 ;volatile
147 ;main.c: 730: PORTB |= ( ( (INDEX-1) % 8) & 0x0
+ 7 );
148 000F' 0300' decf _INDEX,w
149 0010' 3907 andlw 7
150 0011' 0486 iorwf 6 ;volatile
151 ;main.c: 732: } else {
152 0012' 2800' goto l192
153 0013' l191
154 ;main.c: 733: INDEX = 0;
155 0013' 0180' clrf _INDEX
156 ;main.c: 734: RB3 = 1;
157 0014' 1586 bsf 6,3
158 ;main.c: 735: PORTB = PORTB & 0xF8;
159 0015' 30F8 movlw -8
160 0016' 0586 andwf 6 ;volatile
161 0017' l192
162 ;main.c: 736: }
163 0017' 0880' movf _INDEX
164 0018' 1D03 btfss 3,2
165 0019' 2800' goto l193
166 ;main.c: 740: CM1CON0 = COMP1[0];
167 001A' 120A' 118A' 2000' fcall _COMP1
168 001D' 1703 bsf 3,6
169 001E' 0087 movwf 7 ;volatile
170 ;main.c: 741: CM2CON0 = COMP2[0];
171 001F' 120A' 118A' 2000' fcall _COMP2
+ 120A' 118A'
172 0024' 2800' goto L18
173 ;main.c: 742: } else {
174 0025' l193
175 ;main.c: 743: CM1CON0 = COMP1[1];
176 0025' 3000' movlw _COMP1 shr (0+8)
177 0026' 008A movwf 10
178 0027' 3001 movlw 1
179 0028' 2000' call ((_COMP1+-1)& (0+2047))| (($)& (0+-2048))
180 0029' 1703 bsf 3,6
181 002A' 0087 movwf 7 ;volatile
182 ;main.c: 744: CM2CON0 = COMP2[1];
183 002B' 3000' movlw _COMP2 shr (0+8)
184 002C' 008A movwf 10
185 002D' 3001 movlw 1
186 002E' 2000' call ((_COMP2+-1)& (0+2047))| (($)& (0+-2048))
187 002F' 120A' 118A' pagesel $
188 0031' L18
189 0031' 0088 movwf 8 ;volatile
190 ;main.c: 745: }
191 0032' 1303 bcf 3,6 ;carry unused
192 0033' 0008 return ;W free
193 0034' _CapISR
194 ;main.c: 521: void CapISR(void) {
195 0034' 0183 clrf 3 ;select bank 0
196 0035' 080F movf 15,w ;volatile
197 0036' 0081' movwf _VALUE+1
198 0037' 080E movf 14,w ;volatile
199 0038' 0080' movwf _VALUE
200 ;main.c: 528: RAW[INDEX] = VALUE;
201 0039' 0800' movf _INDEX,w
202 003A' 0700' addwf _INDEX,w
203 003B' 3E00' addlw _RAW^(0+256)
204 003C' 0084 movwf 4
205 003D' 1783 bsf 3,7
206 003E' 0800' movf _VALUE,w
207 003F' 0080 movwf 0
208 0040' 0A84 incf 4
209 0041' 0801' movf _VALUE+1,w
210 0042' 0080 movwf 0
211 ;main.c: 529: BIGVAL = VALUE * 16;
212 0043' 0801' movf _VALUE+1,w
213 0044' 0081' movwf btemp+1
214 0045' 0800' movf _VALUE,w
215 0046' 0080' movwf btemp
216 0047' 0E80' swapf btemp
217 0048' 0E81' swapf btemp+1
218 0049' 30F0 movlw 240
219 004A' 0581' andwf btemp+1
220 004B' 0800' movf btemp,w
221 004C' 390F andlw 15
222 004D' 0481' iorwf btemp+1
223 004E' 30F0 movlw 240
224 004F' 0580' andwf btemp
225 0050' 0800' movf btemp,w
226 0051' 0080' movwf _BIGVAL
227 0052' 0801' movf btemp+1,w
228 0053' 0081' movwf _BIGVAL+1
229 ;main.c: 530: SMALLAVG = AVERAGE[INDEX] / 16;
230 0054' 0800' movf _INDEX,w
231 0055' 0700' addwf _INDEX,w
232 0056' 3E00' addlw _AVERAGE^(0+256)
233 0057' 0084 movwf 4
234 0058' 1783 bsf 3,7
235 0059' 0800 movf 0,w
236 005A' 0080' movwf btemp
237 005B' 0A84 incf 4
238 005C' 0800 movf 0,w
239 005D' 0081' movwf btemp+1
240 005E' 3004 movlw 4
241 005F' 0082' movwf btemp+2
242 0060' u975
243 0060' 1003 bcf 3,0
244 0061' 0C81' rrf btemp+1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -