📄 main887.lst
字号:
HI-TECH Software PICC Macro Assembler V9.60
Tue Nov 04 14:20:22 2008
1 processor 16F887
2 opt pw 79
3 psect strings,global,class=STRING,delta=2
4 psect const1,local,class=CONST,delta=2
5 psect const2,local,class=CONST,delta=2
6 psect text2,local,class=CODE,delta=2
7 psect intcode,global,class=CODE,delta=2
8 psect intsave_0,global,ovrld,class=COMBANK,spa
+ ce=1,delta=1
9 psect intret,global,class=CODE,delta=2
10 psect intentry,global,class=CODE,delta=2
11 psect intsave,global,class=BANK0,space=1,delta
+ =1
12 psect text6,local,class=CODE,delta=2
13 psect text9,local,class=CODE,delta=2
14 psect text10,local,class=CODE,delta=2
15 psect rbss_0,global,class=BANK0,space=1,delta=
+ 1
16 psect rbss_2,global,class=BANK2,space=1,delta=
+ 1
17 psect rbss_3,global,class=BANK3,space=1,delta=
+ 1
18 psect temp,global,ovrld,class=BANK0,space=1,de
+ lta=1
19 0000
20 0000
21 0000
22 0000
23 0000
24 0000
25 0000
26 0000
27 0000
28 0000
29
30 psect const1
31 07BD 0782 addwf 2
32 07BE _COMP1
33 07BE 3494 retlw -108
34 07BF 3495 retlw -107
35
36 psect const2
37 07C0 0782 addwf 2
38 07C1 _COMP2
39 07C1 34A0 retlw -96
40 07C2 34A1 retlw -95
41
42 psect intcode
43 0019 _isr
44 0019 int_func
45 ;main887.c: 390: void interrupt isr(void)
46 0019 190B btfsc 11,2
47 001A 1E8B btfss 11,5
48 001B 282C goto l117
49 ;main887.c: 397: TMR1ON = 0;
50 001C 1283 bcf 3,5
51 001D 1303 bcf 3,6 ;carry unused
52 001E 1010 bcf 16,0
53 ;main887.c: 399: if (Flags.SSPBF == 1)
54 001F 1C23 btfss _Flags,0
55 0020 2827 goto l118
56 ;main887.c: 400: RestartTimers();
57 0021 120A 118A 20E2 fcall _RestartTimers
+ 120A 118A
58 0026 282C goto l117
59 0027 l118
60 ;main887.c: 401: else
61 0027 120A 118A 247A fcall _CapISR
+ 120A 118A
62 002C l117
63 ;main887.c: 403: }
64 002C 1283 bcf 3,5
65 002D 1303 bcf 3,6 ;carry unused
66 002E 18A3 btfsc _Flags,1
67 002F 1D8C btfss 12,3
68 0030 2832 goto l120
69 ;main887.c: 408: SSPIF = 0;
70 0031 118C bcf 12,3
71 0032 l120
72 ;main887.c: 411: if (SSPIF == 1 && SSPIE == 1)
73 0032 1D8C btfss 12,3
74 0033 283C goto l121
75 0034 1683 bsf 3,5
76 0035 1D8C btfss 12,3
77 0036 283C goto l121
78 ;main887.c: 412: SSPISR();
79 0037 120A 158A 27C2 fcall _SSPISR
+ 120A 118A
80 003C l121
81 ;main887.c: 416: if (T0IF == 1)
82 003C 1D0B btfss 11,2
83 003D 2843 goto l116
84 ;main887.c: 417: RestartTimers();
85 003E 120A 118A 20E2 fcall _RestartTimers
+ 120A 118A
86 ;main887.c: 419: }
87 0043 l116
88 0043 1303 bcf 3,6 ;carry unused
89 0044 1283 bcf 3,5
90
91 psect intsave_0
92 0079 saved_w
saved_w
93 0079 ds 1
94
95 psect intret
96 0051 0843 movf saved_fsr,w
97 0052 0084 movwf 4 ;restore FSR
98 0053 0844 movf saved_pclath,w
99 0054 008A movwf 10
100 0055 int_restore
101 0055 0842 movf saved_status,w
102 0056 0083 movwf 3
103 0057 0EF9 swapf saved_w
104 0058 0E79 swapf saved_w,w
105 0059 0009 retfie
106
107 psect intentry
108 0004 int_entry
109 0004 00F9 movwf saved_w
110 0005 0803 movf 3,w
111 0006 0183 clrf 3
112 0007 00C2 movwf saved_status
113 0008 0804 movf 4,w
114 0009 00C3 movwf saved_fsr
115 000A 080A movf 10,w
116 000B 00C4 movwf saved_pclath
117 000C 018A clrf 10
118
119 psect intsave
120 0042 saved_status
saved_status
121 0042 ds 1
122 0043 saved_fsr
saved_fsr
123 0043 ds 1
124 0044 saved_pclath
saved_pclath
125 0044 ds 1
126
127 psect text6
128 0446 _SetNextChannel
129 ;main887.c: 739: void SetNextChannel(void) {
130 0446 3011 movlw 17
131 0447 0183 clrf 3 ;select bank 0
132 0448 0224 subwf _INDEX,w
133 0449 1803 btfsc 3,0
134 044A 2C59 goto l200
135 ;main887.c: 746: INDEX++;
136 044B 0AA4 incf _INDEX
137 ;main887.c: 747: RB3 = (INDEX <= 8) ? 1 : 0;
138 044C 3009 movlw 9
139 044D 0224 subwf _INDEX,w
140 044E 1803 btfsc 3,0
141 044F 2C52 goto u1410
142 0450 1586 bsf 6,3
143 0451 2C53 goto u1424
144 0452 u1410
145 0452 1186 bcf 6,3
146 0453 u1424
147 ;main887.c: 748: PORTB &= 0xF8;
148 0453 30F8 movlw -8
149 0454 0586 andwf 6 ;volatile
150 ;main887.c: 749: PORTB |= ( ( (INDEX-1) % 8) &
+ 0x07 );
151 0455 0324 decf _INDEX,w
152 0456 3907 andlw 7
153 0457 0486 iorwf 6 ;volatile
154 ;main887.c: 751: } else {
155 0458 2C5D goto l201
156 0459 l200
157 ;main887.c: 752: INDEX = 0;
158 0459 01A4 clrf _INDEX
159 ;main887.c: 753: RB3 = 1;
160 045A 1586 bsf 6,3
161 ;main887.c: 754: PORTB = PORTB & 0xF8;
162 045B 30F8 movlw -8
163 045C 0586 andwf 6 ;volatile
164 045D l201
165 ;main887.c: 755: }
166 045D 08A4 movf _INDEX
167 045E 1D03 btfss 3,2
168 045F 2C6B goto l202
169 ;main887.c: 759: CM1CON0 = COMP1[0];
170 0460 120A 118A 27BE fcall _COMP1
171 0463 1703 bsf 3,6
172 0464 0087 movwf 7 ;volatile
173 ;main887.c: 760: CM2CON0 = COMP2[0];
174 0465 120A 118A 27C1 fcall _COMP2
+ 120A 118A
175 046A 2C77 goto L19
176 ;main887.c: 761: } else {
177 046B l202
178 ;main887.c: 762: CM1CON0 = COMP1[1];
179 046B 3007 movlw _COMP1 shr (0+8)
180 046C 008A movwf 10
181 046D 3001 movlw 1
182 046E 27BD call ((_COMP1+-1)& (0+2047))| (($)& (0+-2048))
183 046F 1703 bsf 3,6
184 0470 0087 movwf 7 ;volatile
185 ;main887.c: 763: CM2CON0 = COMP2[1];
186 0471 3007 movlw _COMP2 shr (0+8)
187 0472 008A movwf 10
188 0473 3001 movlw 1
189 0474 27C0 call ((_COMP2+-1)& (0+2047))| (($)& (0+-2048))
190 0475 120A 118A pagesel $
191 0477 L19
192 0477 0088 movwf 8 ;volatile
193 ;main887.c: 764: }
194 0478 1303 bcf 3,6 ;carry unused
195 0479 0008 return ;W free
196 047A _CapISR
197 ;main887.c: 540: void CapISR(void) {
198 047A 0183 clrf 3 ;select bank 0
199 047B 080F movf 15,w ;volatile
200 047C 00B2 movwf _VALUE+1
201 047D 080E movf 14,w ;volatile
202 047E 00B1 movwf _VALUE
203 ;main887.c: 547: BIGVAL = VALUE * 16;
204 047F 0832 movf _VALUE+1,w
205 0480 00FB movwf btemp+1
206 0481 0831 movf _VALUE,w
207 0482 00FA movwf btemp
208 0483 0EFA swapf btemp
209 0484 0EFB swapf btemp+1
210 0485 30F0 movlw 240
211 0486 05FB andwf btemp+1
212 0487 087A movf btemp,w
213 0488 390F andlw 15
214 0489 04FB iorwf btemp+1
215 048A 30F0 movlw 240
216 048B 05FA andwf btemp
217 048C 087A movf btemp,w
218 048D 00AB movwf _BIGVAL
219 048E 087B movf btemp+1,w
220 048F 00AC movwf _BIGVAL+1
221 ;main887.c: 548: SMALLAVG = AVERAGE[INDEX] / 16
+ ;
222 0490 0824 movf _INDEX,w
223 0491 0724 addwf _INDEX,w
224 0492 3E10 addlw _AVERAGE^(0+256)
225 0493 0084 movwf 4
226 0494 1783 bsf 3,7
227 0495 0800 movf 0,w
228 0496 00FA movwf btemp
229 0497 0A84 incf 4
230 0498 0800 movf 0,w
231 0499 00FB movwf btemp+1
232 049A 3004 movlw 4
233 049B 00FC movwf btemp+2
234 049C u1085
235 049C 1003 bcf 3,0
236 049D 0CFB rrf btemp+1
237 049E 0CFA rrf btemp
238 049F 0BFC decfsz btemp+2
239 04A0 2C9C goto u1085
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -