📄 main.lst
字号:
HI-TECH Software PICC Macro Assembler V8.05PL2
Serial number: HCPIC-01234 Fri Apr 17 15:57:13 2009
Licensed to: SHAN
1 processor 16F877A
2 opt pw 79
3 psect __Z01234RS_,global,delta=1
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 text0,local,class=CODE,delta=2
8 psect config,global,class=CONFIG,delta=2
9 psect text4,local,class=CODE,delta=2
10 psect intcode,global,class=CODE,delta=2
11 psect intsave_0,global,ovrld,class=COMBANK,spa
+ ce=1,delta=1
12 psect intret,global,class=CODE,delta=2
13 psect intentry,global,class=CODE,delta=2
14 psect intsave,global,class=BANK0,space=1,delta
+ =1
15 psect rbss_0,global,class=BANK0,space=1,delta=
+ 1
16 psect temp,global,ovrld,class=BANK0,space=1,de
+ lta=1
17 0000
18 0000
19 0000
20 0000
21 0000
22 0000
23 0000
24 0000
25 0000
26 0000
27
28 psect __Z01234RS_
29 0190
30 0190
31
32 psect const1
33 0066 0782 addwf 2
34 0067 _table
35 0067 343F retlw 63
36 0068 3406 retlw 6
37 0069 345B retlw 91
38 006A 344F retlw 79
39 006B 3466 retlw 102
40 006C 346D retlw 109
41 006D 347D retlw 125
42 006E 3407 retlw 7
43 006F 347F retlw 127
44 0070 346F retlw 111
45 0071 3400 retlw 0
46 0072 3440 retlw 64
47 0073 3439 retlw 57
48
49 psect const2
50 0074 0782 addwf 2
51 0075 _table1
52 0075 34BF retlw -65
53 0076 3486 retlw -122
54 0077 34DB retlw -37
55 0078 34CF retlw -49
56 0079 34E6 retlw -26
57 007A 34ED retlw -19
58 007B 34FD retlw -3
59 007C 3487 retlw -121
60 007D 34FF retlw -1
61 007E 34EF retlw -17 ;#
62
63 psect text0
64 0721 _show
65 ; _j assigned to ?a_show+0
66 0000 _show$j set ?a_show
67 ;_j stored from w
68 0721 0183 clrf 3 ;select bank 0
69 0722 00AD movwf ?a_show
70 ;main.c: 20: PORTD=table[j];
71 0723 3000 movlw _table shr (0+8)
72 0724 008A movwf 10
73 0725 082D movf ?a_show,w
74 0726 2066 call ((_table+-1)& (0+2047))| (($)& (0+-2048))
75 0727 120A 118A pagesel $
76 0729 0088 movwf 8 ;volatile
77 ;main.c: 21: PORTA=~(1<<(k));
78 072A 3001 movlw 1
79 072B 00F0 movwf btemp
80 072C 082C movf ?_show,w
81 072D 00F1 movwf btemp+1
82 072E 0AF1 incf btemp+1
83 072F 2F32 goto u14
84 0730 u15
85 0730 1003 bcf 3,0
86 0731 0DF0 rlf btemp
87 0732 u14
88 0732 0BF1 decfsz btemp+1
89 0733 2F30 goto u15
90 0734 0970 comf btemp,w
91 0735 0085 movwf 5 ;volatile
92 ;main.c: 22: DelayMs(1);
93 0736 3001 movlw 1
94 0737 120A 118A 260D fcall _DelayMs
+ 120A 118A
95 ;main.c: 23: PORTA=0XFF;
96 073C 30FF movlw -1
97 073D 0085 movwf 5 ;volatile
98 ;main.c: 24: }
99 073E 0008 return
100 073F _dig_tube
101 ; _num0 assigned to ?a_dig_tube+0
102 0000 _dig_tube$num0 set ?a_dig_tube
103 ;_num0 stored from w
104 073F 0183 clrf 3 ;select bank 0
105 0740 00AB movwf ?a_dig_tube
106 ;main.c: 38: show(num0,0);
107 0741 01AC clrf ?_show
108 0742 2721 120A 118A fcall _show
109 ;main.c: 39: show(num1,1);
110 0745 01AC clrf ?_show
111 0746 0AAC incf ?_show
112 0747 0826 movf ?_dig_tube,w
113 0748 2721 120A 118A fcall _show
114 ;main.c: 40: show(num2,2);
115 074B 3002 movlw 2
116 074C 00AC movwf ?_show
117 074D 0827 movf ?_dig_tube+1,w
118 074E 2721 120A 118A fcall _show
119 ;main.c: 41: show(num3,3);
120 0751 3003 movlw 3
121 0752 00AC movwf ?_show
122 0753 0828 movf ?_dig_tube+2,w
123 0754 2721 120A 118A fcall _show
124 ;main.c: 42: show(num4,4);
125 0757 3004 movlw 4
126 0758 00AC movwf ?_show
127 0759 0829 movf ?_dig_tube+3,w
128 075A 2721 120A 118A fcall _show
129 ;main.c: 43: show(num5,5);
130 075D 3005 movlw 5
131 075E 00AC movwf ?_show
132 075F 082A movf ?_dig_tube+4,w
133 0760 2F21 ljmp _show
134 0761 _init
135 ;main.c: 28: TRISA=0;
136 0761 1683 bsf 3,5
137 0762 1303 bcf 3,6 ;carry unused
138 0763 0185 clrf 5 ;volatile
139 ;main.c: 29: PORTA=0XFF;
140 0764 30FF movlw -1
141 0765 1283 bcf 3,5
142 0766 0085 movwf 5 ;volatile
143 ;main.c: 30: TRISD=0;
144 0767 1683 bsf 3,5
145 0768 0188 clrf 8 ;volatile
146 ;main.c: 31: PORTD=0;
147 0769 1283 bcf 3,5
148 076A 0188 clrf 8 ;volatile
149 ;main.c: 32: OPTION=0x04;
150 076B 3004 movlw 4
151 076C 1683 bsf 3,5
152 076D 0081 movwf 1
153 ;main.c: 33: INTCON=0xa0;
154 076E 30A0 movlw -96
155 076F 008B movwf 11 ;volatile
156 ;main.c: 34: }
157 0770 1283 bcf 3,5
158 0771 0008 return
159 0772 _main
160 ; _h assigned to ?a_main+0
161 0000 _main$h set ?a_main
162 ;main.c: 48: unsigned int h;
163 0772 2761 fcall _init
164 ;main.c: 50: for(h=0;h<100;h++)
165 0773 01A4 clrf ?a_main
166 0774 01A5 clrf ?a_main+1
167 0775 l5
168 ;main.c: 51: {
169 ;main.c: 52: dig_tube(8,8,8,8,8,8);
170 0775 3008 movlw 8
171 0776 00A6 movwf ?_dig_tube
172 0777 00A7 movwf ?_dig_tube+1
173 0778 00A8 movwf ?_dig_tube+2
174 0779 00A9 movwf ?_dig_tube+3
175 077A 00AA movwf ?_dig_tube+4
176 077B 273F 120A 118A fcall _dig_tube
177 ;main.c: 53: asm("nop");
178 077E 0000 nop ;#
179 ;main.c: 54: }
180 077F 0AA4 incf ?a_main
181 0780 1903 btfsc 3,2
182 0781 0AA5 incf ?a_main+1
183 0782 3000 movlw 0
184 0783 0225 subwf ?a_main+1,w
185 0784 3064 movlw 100
186 0785 1903 btfsc 3,2
187 0786 0224 subwf ?a_main,w
188 0787 1C03 btfss 3,0
189 0788 2F75 goto l5
190 ;main.c: 55: DS18B20_RESET();
191 0789 120A 118A 26E5 fcall _DS18B20_RESET
192 ;main.c: 56: DS18B20_WRITE_BYTE(0xCC);
193 078C 30CC movlw -52
194 078D 120A 118A 26BC fcall _DS18B20_WRITE_BYTE
195 ;main.c: 57: DS18B20_WRITE_BYTE(0x44);
196 0790 3044 movlw 68
197 0791 120A 118A 26BC fcall _DS18B20_WRITE_BYTE
+ 120A 118A
198 ;main.c: 58: for(h=0;h<500;h++)
199 0796 01A4 clrf ?a_main
200 0797 01A5 clrf ?a_main+1
201 0798 l8
202 ;main.c: 59: {
203 ;main.c: 60: dig_tube(8,8,8,8,8,8);
204 0798 3008 movlw 8
205 0799 00A6 movwf ?_dig_tube
206 079A 00A7 movwf ?_dig_tube+1
207 079B 00A8 movwf ?_dig_tube+2
208 079C 00A9 movwf ?_dig_tube+3
209 079D 00AA movwf ?_dig_tube+4
210 079E 273F 120A 118A fcall _dig_tube
211 ;main.c: 61: asm("nop");
212 07A1 0000 nop ;#
213 ;main.c: 62: }
214 07A2 0AA4 incf ?a_main
215 07A3 1903 btfsc 3,2
216 07A4 0AA5 incf ?a_main+1
217 07A5 3001 movlw 1
218 07A6 0225 subwf ?a_main+1,w
219 07A7 30F4 movlw 244
220 07A8 1903 btfsc 3,2
221 07A9 0224 subwf ?a_main,w
222 07AA 1C03 btfss 3,0
223 07AB 2F98 goto l8
224 07AC l12
225 ;main.c: 63: while(1)
226 ;main.c: 64: {
227 07AC 120A 118A 2713 fcall _DS18B20_READ_TEMP
228 ;main.c: 67: work_temp();
229 07AF 120A 118A 261A fcall _work_temp
+ 120A 118A
230 ;main.c: 68: dig_tube(display[3],display[2],dis
+ play[1],doth,dotl,12);
231 07B4 0835 movf _display+2,w
232 07B5 00A6 movwf ?_dig_tube
233 07B6 0834 movf _display+1,w
234 07B7 00A7 movwf ?_dig_tube+1
235 07B8 0821 movf _doth,w
236 07B9 00A8 movwf ?_dig_tube+2
237 07BA 0822 movf _dotl,w
238 07BB 00A9 movwf ?_dig_tube+3
239 07BC 300C movlw 12
240 07BD 00AA movwf ?_dig_tube+4
241 07BE 0836 movf _display+3,w
242 07BF 273F 120A 118A fcall _dig_tube
243 ;main.c: 71: }
244 07C2 2FAC goto l12
245
246 psect config
247 2007 3B31 dw 15153 ;#
248 0000 _show$k set ?_show
249
250 psect intcode
251 ;main.c: 74: void interrupt time0()
252 ;main.c: 75: {
253 000B _time0
254 000B int_func
255 ;main.c: 76: T0IF=0;
256 000B 110B bcf 11,2
257 ;main.c: 77: intnum++;
258 000C 1283 bcf 3,5
259 000D 1303 bcf 3,6 ;carry unused
260 000E 0AA0 incf _intnum
261 ;main.c: 78: if(intnum==5)
262 000F 0820 movf _intnum,w
263 0010 3A05 xorlw 5
264 0011 1903 btfsc 3,2
265 ;main.c: 79: {
266 0012 01A0 clrf _intnum
267
268 psect intsave_0
269 0075 saved_w
270 0075 ds 1
271
272 psect intret
273 0013 083B movf saved_pclath,w
274 0014 008A movwf 10
275 0015 int_restore
276 0015 083A movf saved_status,w
277 0016 0083 movwf 3
278 0017 0EF5 swapf saved_w
279 0018 0E75 swapf saved_w,w
280 0019 0009 retfie
281
282 psect intentry
283 0004 int_entry
284 0004 00F5 movwf saved_w
285 0005 0803 movf 3,w
286 0006 0183 clrf 3
287 0007 00BA movwf saved_status
288 0008 080A movf 10,w
289 0009 00BB movwf saved_pclath
290 000A 018A clrf 10
291 0000
292 0000
293 0000
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -