📄 main.lst
字号:
HI-TECH Software PICC Macro Assembler V8.05PL2
Serial number: HCPIC-01234 Tue Mar 31 11:11:44 2009
Licensed to: SHAN
1 processor 16F877A
2 opt pw 79
3 psect __Z01234RS_,global,delta=1
4 psect rdata_0,global,class=BANK0,space=1,delta
+ =1
5 psect idata_0,global,class=CODE,delta=2
6 psect config,global,class=CONFIG,delta=2
7 psect text4,local,class=CODE,delta=2
8 psect text6,local,class=CODE,delta=2
9 psect temp,global,ovrld,class=BANK0,space=1,de
+ lta=1
10 0000
11 0000
12 0000
13 0000
14 0000
15 0000
16 0000
17 0000
18 0000
19 0000
20
21 psect __Z01234RS_
22 0190
23 0190
24
25 psect rdata_0
26 002F _table
27 002F ds 1
28 0030 ds 1
29 0031 ds 1
30 0032 ds 1
31 0033 ds 1
32 0034 ds 1
33 0035 ds 1
34 0036 ds 1
35 0037 ds 1
36 0038 ds 1
37 0039 ds 1
38 003A ds 1
39 003B ds 1
40 003C ds 1
41 003D ds 1
42 003E ds 1
43
44 psect idata_0
45 07F0 343F retlw 63
46 07F1 3406 retlw 6
47 07F2 345B retlw 91
48 07F3 344F retlw 79
49 07F4 3466 retlw 102
50 07F5 346D retlw 109
51 07F6 347D retlw 125
52 07F7 3407 retlw 7
53 07F8 347F retlw 127
54 07F9 346F retlw 111
55 07FA 3477 retlw 119
56 07FB 347C retlw 124
57 07FC 3439 retlw 57
58 07FD 345E retlw 94
59 07FE 3479 retlw 121
60 07FF 3471 retlw 113 ;#
61
62 psect config
63 2007 3B31 dw 15153 ;#
64 0000 _delay$ms set ?_delay
65
66 psect text4
67 0731 _dig_tube
68 ; _num0 assigned to ?a_dig_tube+0
69 0000 _dig_tube$num0 set ?a_dig_tube
70 ;_num0 stored from w
71 0731 0183 clrf 3 ;select bank 0
72 0732 00A6 movwf ?a_dig_tube
73 ;main.c: 51: show(num0,0);
74 0733 01A7 clrf ?_show
75 0734 276F 120A 118A fcall _show
76 ;main.c: 52: show(num1,1);
77 0737 01A7 clrf ?_show
78 0738 0AA7 incf ?_show
79 0739 0821 movf ?_dig_tube,w
80 073A 276F 120A 118A fcall _show
81 ;main.c: 53: show(num2,2);
82 073D 3002 movlw 2
83 073E 00A7 movwf ?_show
84 073F 0822 movf ?_dig_tube+1,w
85 0740 276F 120A 118A fcall _show
86 ;main.c: 54: show(num3,3);
87 0743 3003 movlw 3
88 0744 00A7 movwf ?_show
89 0745 0823 movf ?_dig_tube+2,w
90 0746 276F 120A 118A fcall _show
91 ;main.c: 55: show(num4,4);
92 0749 3004 movlw 4
93 074A 00A7 movwf ?_show
94 074B 0824 movf ?_dig_tube+3,w
95 074C 276F 120A 118A fcall _show
96 ;main.c: 56: show(num5,5);
97 074F 3005 movlw 5
98 0750 00A7 movwf ?_show
99 0751 0825 movf ?_dig_tube+4,w
100 0752 2F6F ljmp _show
101 0753 _delay
102 ; _i assigned to ?a_delay+0
103 0000 _delay$i set ?a_delay
104 ; _j assigned to ?a_delay+2
105 0000 _delay$j set ?a_delay+2
106 ;main.c: 10: unsigned int i,j;
107 0753 0183 clrf 3 ;select bank 0
108 0754 01AB clrf ?a_delay
109 0755 01AC clrf ?a_delay+1
110 0756 2F66 goto l5
111 0757 l2
112 ;main.c: 12: {
113 ;main.c: 13: for(j=0;j<88;j++);
114 0757 01AD clrf ?a_delay+2
115 0758 01AE clrf ?a_delay+3
116 0759 l6
117 0759 0AAD incf ?a_delay+2
118 075A 1903 btfsc 3,2
119 075B 0AAE incf ?a_delay+3
120 075C 3000 movlw 0
121 075D 022E subwf ?a_delay+3,w
122 075E 3058 movlw 88
123 075F 1903 btfsc 3,2
124 0760 022D subwf ?a_delay+2,w
125 0761 1C03 btfss 3,0
126 0762 2F59 goto l6
127 ;main.c: 14: }
128 0763 0AAB incf ?a_delay
129 0764 1903 btfsc 3,2
130 0765 0AAC incf ?a_delay+1
131 0766 l5
132 0766 082A movf ?_delay+1,w
133 0767 022C subwf ?a_delay+1,w
134 0768 1D03 btfss 3,2
135 0769 2F6C goto u25
136 076A 0829 movf ?_delay,w
137 076B 022B subwf ?a_delay,w
138 076C u25
139 076C 1803 btfsc 3,0
140 076D 0008 return
141 076E 2F57 goto l2
142 076F _show
143 ; _j assigned to ?a_show+0
144 0000 _show$j set ?a_show
145 ;_j stored from w
146 076F 0183 clrf 3 ;select bank 0
147 0770 00A8 movwf ?a_show
148 ;main.c: 19: PORTD=table[j];
149 0771 3E2F addlw _table
150 0772 0084 movwf 4
151 0773 1383 bcf 3,7
152 0774 0800 movf 0,w
153 0775 0088 movwf 8 ;volatile
154 ;main.c: 20: PORTA=~(1<<(k));
155 0776 3001 movlw 1
156 0777 00F0 movwf btemp
157 0778 0827 movf ?_show,w
158 0779 00F1 movwf btemp+1
159 077A 0AF1 incf btemp+1
160 077B 2F7E goto u34
161 077C u35
162 077C 1003 bcf 3,0
163 077D 0DF0 rlf btemp
164 077E u34
165 077E 0BF1 decfsz btemp+1
166 077F 2F7C goto u35
167 0780 0970 comf btemp,w
168 0781 0085 movwf 5 ;volatile
169 ;main.c: 21: delay(1);
170 0782 01A9 clrf ?_delay
171 0783 0AA9 incf ?_delay
172 0784 01AA clrf ?_delay+1
173 0785 2753 fcall _delay
174 ;main.c: 22: PORTA=0XFF;
175 0786 30FF movlw -1
176 0787 0085 movwf 5 ;volatile
177 ;main.c: 23: }
178 0788 0008 return
179 ;main.c: 37: void bell(unsigned char num)
180 ;main.c: 38: {
181 0789 _bell
182 ; _num assigned to ?a_bell+0
183 0000 _bell$num set ?a_bell
184 ; _dnum assigned to ?a_bell+1
185 0000 _bell$dnum set ?a_bell+1
186 ;_num stored from w
187 0789 0183 clrf 3 ;select bank 0
188 078A 00A0 movwf ?a_bell
189 ;main.c: 39: unsigned char dnum;
190 078B 00A1 movwf ?a_bell+1
191 078C 08A1 movf ?a_bell+1
192 078D 1903 btfsc 3,2
193 078E 0008 return
194 078F l12
195 ;main.c: 41: {
196 ;main.c: 42: RE0=1;
197 078F 1409 bsf 9,0
198 ;main.c: 43: delay(50);
199 0790 3032 movlw 50
200 0791 00A9 movwf ?_delay
201 0792 01AA clrf ?_delay+1
202 0793 2753 fcall _delay
203 ;main.c: 44: RE0=0;
204 0794 1009 bcf 9,0
205 ;main.c: 45: delay(20);
206 0795 3014 movlw 20
207 0796 00A9 movwf ?_delay
208 0797 01AA clrf ?_delay+1
209 0798 2753 fcall _delay
210 ;main.c: 46: }
211 0799 0BA1 decfsz ?a_bell+1
212 079A 2F8F goto l12
213 079B 0008 return
214 ;main.c: 25: void init()
215 ;main.c: 26: {
216 079C _init
217 ;main.c: 27: TRISA=0;
218 079C 1683 bsf 3,5
219 079D 1303 bcf 3,6 ;carry unused
220 079E 0185 clrf 5 ;volatile
221 ;main.c: 28: PORTA=0XFF;
222 079F 30FF movlw -1
223 07A0 1283 bcf 3,5
224 07A1 0085 movwf 5 ;volatile
225 ;main.c: 29: TRISD=0;
226 07A2 1683 bsf 3,5
227 07A3 0188 clrf 8 ;volatile
228 ;main.c: 30: PORTD=0;
229 07A4 1283 bcf 3,5
230 07A5 0188 clrf 8 ;volatile
231 ;main.c: 31: TRISB=0X0F;
232 07A6 300F movlw 15
233 07A7 1683 bsf 3,5
234 07A8 0086 movwf 6 ;volatile
235 ;main.c: 32: PORTB=0;
236 07A9 1283 bcf 3,5
237 07AA 0186 clrf 6 ;volatile
238 ;main.c: 33: TRISE0=0;
239 07AB 1683 bsf 3,5
240 07AC 1009 bcf 9,0
241 ;main.c: 34: RE0=0;
242 07AD 1283 bcf 3,5
243 07AE 1009 bcf 9,0
244 ;main.c: 35: }
245 07AF 0008 return
246 ;main.c: 58: void main()
247 ;main.c: 59: {unsigned char key_num;
248 07B0 _main
249 ; _key_num assigned to ?a_main+0
250 0000 _main$key_num set ?a_main
251 ;main.c: 60: init();
252 07B0 279C fcall _init
253 07B1 l18
254 ;main.c: 61: while(1)
255 ;main.c: 62: {
256 07B1 1806 btfsc 6,0
257 07B2 2FBD goto l20
258 ;main.c: 64: {
259 07B3 300A movlw 10
260 07B4 00A9 movwf ?_delay
261 07B5 01AA clrf ?_delay+1
262 07B6 2753 fcall _delay
263 ;main.c: 66: if(RB0==0)
264 07B7 1806 btfsc 6,0
265 07B8 2FBD goto l20
266 ;main.c: 67: {
267 07B9 l22
268 07B9 1C06 btfss 6,0
269 07BA 2FB9 goto l22
270 ;main.c: 69: key_num=1;
271 07BB 01A0 clrf ?a_main
272 07BC 0AA0 incf ?a_main
273 ;main.c: 70: }
274 07BD l20
275 ;main.c: 73: if(RB1==0)
276 07BD 1886 btfsc 6,1
277 07BE 2FC9 goto l25
278 ;main.c: 74: {
279 07BF 300A movlw 10
280 07C0 00A9 movwf ?_delay
281 07C1 01AA clrf ?_delay+1
282 07C2 2753 fcall _delay
283 ;main.c: 76: if(RB1==0)
284 07C3 1886 btfsc 6,1
285 07C4 2FC9 goto l25
286 ;main.c: 77: {
287 07C5 l27
288 07C5 1C86 btfss 6,1
289 07C6 2FC5 goto l27
290 ;main.c: 79: key_num=2;
291 07C7 3002 movlw 2
292 07C8 00A0 movwf ?a_main
293 ;main.c: 80: }
294 07C9 l25
295 ;main.c: 83: if(RB2==0)
296 07C9 1906 btfsc 6,2
297 07CA 2FD5 goto l30
298 ;main.c: 84: {
299 07CB 300A movlw 10
300 07CC 00A9 movwf ?_delay
301 07CD 01AA clrf ?_delay+1
302 07CE 2753 fcall _delay
303 ;main.c: 86: if(RB2==0)
304 07CF 1906 btfsc 6,2
305 07D0 2FD5 goto l30
306 ;main.c: 87: {
307 07D1 l32
308 07D1 1D06 btfss 6,2
309 07D2 2FD1 goto l32
310 ;main.c: 89: key_num=3;
311 07D3 3003 movlw 3
312 07D4 00A0 movwf ?a_main
313 ;main.c: 90: }
314 07D5 l30
315 ;main.c: 93: if(RB3==0)
316 07D5 1986 btfsc 6,3
317 07D6 2FE1 goto l35
318 ;main.c: 94: {
319 07D7 300A movlw 10
320 07D8 00A9 movwf ?_delay
321 07D9 01AA clrf ?_delay+1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -