📄 com.lst
字号:
HI-TECH Software PICC Macro Assembler V8.05PL1
Serial number: HCPIC-71097 Thu Dec 20 19:08:33 2007
Licensed to: ONE
1 processor 16F877A
2 opt pw 79
3 psect __Z71097RS_,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 text0,local,class=CODE,delta=2
7 psect text1,local,class=CODE,delta=2
8 psect text3,local,class=CODE,delta=2
9 psect text4,local,class=CODE,delta=2
10 psect text5,local,class=CODE,delta=2
11 psect text6,local,class=CODE,delta=2
12 psect temp,global,ovrld,class=BANK0,space=1,de
+ lta=1
13 0000
14 0000
15 0000
16 0000
17 0000
18 0000
19 0000
20 0000
21 0000
22 0000
23
24 psect __Z71097RS_
25 0190
26 0190
27
28 psect rdata_0
29 005A _delay_data1_sys
30 005A ds 1
31 005B _delay_data2_sys
32 005B ds 1
33 005C _delay_data1
34 005C ds 1
35 005D _delay_data2
36 005D ds 1
37
38 psect idata_0
39 07FC 34F9 retlw -7
40 07FD 3407 retlw 7
41 07FE 34F9 retlw -7
42 07FF 340E retlw 14
43
44 psect text0
45 0800 _Delay_5ms
46 ; _n assigned to ?a_Delay_5ms+0
47 0000 _Delay_5ms$n set ?a_Delay_5ms
48 ; _i assigned to ?a_Delay_5ms+1
49 0000 _Delay_5ms$i set ?a_Delay_5ms+1
50 ;_n stored from w
51 0800 0183 clrf 3 ;select bank 0
52 0801 00A7 movwf ?a_Delay_5ms
53 ;com.c: 34: unsigned char i = 0;
54 0802 01A8 clrf ?a_Delay_5ms+1
55 ;com.c: 35: for(i; i<n; i++)
56 0803 280D goto l6
57 0804 l3
58 ;com.c: 36: {
59 0804 3007 movlw 7 ;#
60 0805 00DB movwf _delay_data2_sys ;#
61 0806 30F9 movlw 249 ;#
62 0807 00DA movwf _delay_data1_sys ;#
63 0808 0BDA decfsz _delay_data1_sys ;#
64 0809 2FFF goto ($+-1) ;#
65 080A 0BDB decfsz _delay_data2_sys ;#
66 080B 2FFC goto ($+-4) ;#
67 080C 0008 return ;#
68 ;com.c: 48: }
69 080D l6
70 080D 0827 movf ?a_Delay_5ms,w
71 080E 0228 subwf ?a_Delay_5ms+1,w
72 080F 1803 btfsc 3,0
73 0810 0008 return
74 0811 2804 goto l3
75
76 psect text1
77 0812 _Delay_10ms_ISR
78 ; _i assigned to ?a_Delay_10ms_ISR+0
79 0000 _Delay_10ms_ISR$i set ?a_Delay_10ms_ISR
80 ;com.c: 60: unsigned char i = 0;
81 0812 0183 clrf 3 ;select bank 0
82 0813 01D7 clrf ?a_Delay_10ms_ISR
83 ;com.c: 61: for(i; i<n; i++)
84 0814 281E goto l11
85 0815 l8
86 ;com.c: 62: {
87 0815 300E movlw 14 ;#
88 0816 00DD movwf _delay_data2 ;#
89 0817 30F9 movlw 249 ;#
90 0818 00DC movwf _delay_data1 ;#
91 0819 0BDC decfsz _delay_data1 ;#
92 081A 2811 goto ($+-1) ;#
93 081B 0BDD decfsz _delay_data2 ;#
94 081C 280E goto ($+-4) ;#
95 081D 0008 return ;#
96 ;com.c: 74: }
97 081E l11
98 081E 0857 movf ?a_Delay_10ms_ISR,w
99 081F 00F0 movwf btemp
100 0820 01F1 clrf btemp+1
101 0821 0856 movf ?_Delay_10ms_ISR+1,w
102 0822 0271 subwf btemp+1,w
103 0823 1D03 btfss 3,2
104 0824 2827 goto u25
105 0825 0855 movf ?_Delay_10ms_ISR,w
106 0826 0270 subwf btemp,w
107 0827 u25
108 0827 1803 btfsc 3,0
109 0828 0008 return
110 0829 2815 goto l8
111 ;com.c: 84: unsigned char Eep_Rom_Init(void)
112 ;com.c: 85: {
113 082A _Eep_Rom_Init
114 ; _eep_data assigned to ?a_Eep_Rom_Init+0
115 0000 _Eep_Rom_Init$eep_data set ?a_Eep_Rom_Init
116 ; _i assigned to ?a_Eep_Rom_Init+1
117 0000 _Eep_Rom_Init$i set ?a_Eep_Rom_Init+1
118 ;com.c: 86: unsigned char i = 0;
119 082A 0183 clrf 3 ;select bank 0
120 082B 01A8 clrf ?a_Eep_Rom_Init+1
121 ;com.c: 87: unsigned char eep_data = 0;
122 082C 01A7 clrf ?a_Eep_Rom_Init
123 ;com.c: 89: for(i = 0; i<0xFF; i++)
124 082D 01A8 clrf ?a_Eep_Rom_Init+1
125 082E l13
126 ;com.c: 90: {
127 ;com.c: 91: eeprom_write(i, 0);
128 082E 01CE clrf ?_eeprom_write
129 082F 0828 movf ?a_Eep_Rom_Init+1,w
130 0830 160A 118A 26E3 fcall _eeprom_write
+ 120A 158A
131 ;com.c: 92: }
132 0835 0AA8 incf ?a_Eep_Rom_Init+1
133 0836 0F28 incfsz ?a_Eep_Rom_Init+1,w
134 0837 282E goto l13
135 ;com.c: 93: Delay_10ms_ISR(1);
136 0838 01D5 clrf ?_Delay_10ms_ISR
137 0839 0AD5 incf ?_Delay_10ms_ISR
138 083A 01D6 clrf ?_Delay_10ms_ISR+1
139 083B 2012 fcall _Delay_10ms_ISR
140 ;com.c: 94: for(i = 0; i<0xFF; i++)
141 083C 01A8 clrf ?a_Eep_Rom_Init+1
142 083D l16
143 ;com.c: 95: {
144 ;com.c: 96: eep_data = eeprom_read(i);
145 083D 0828 movf ?a_Eep_Rom_Init+1,w
146 083E 160A 118A 2697 fcall _eeprom_read
+ 120A 158A
147 0843 00A7 movwf ?a_Eep_Rom_Init
148 ;com.c: 97: if(eep_data != 0)
149 0844 08A7 movf ?a_Eep_Rom_Init
150 0845 1D03 btfss 3,2
151 0846 284A goto l17
152 ;com.c: 98: {
153 ;com.c: 100: }
154 0847 0AA8 incf ?a_Eep_Rom_Init+1
155 0848 0F28 incfsz ?a_Eep_Rom_Init+1,w
156 0849 283D goto l16
157 084A l17
158 ;com.c: 102: return i;
159 084A 0828 movf ?a_Eep_Rom_Init+1,w
160 ;com.c: 103: }
161 084B 0008 return
162
163 psect text3
164 1703 _Eep_Rom_Write_Filename
165 ; _n assigned to ?a_Eep_Rom_Write_Filename+0
166 0000 _Eep_Rom_Write_Filename$n set ?a_Eep_Rom_Write_
+ Filename
167 ; _file_name_in assigned to ?a_Eep_Rom_Write_Fi
+ lename+1
168 0000 _Eep_Rom_Write_Filename$file_name_in set ?a_Eep
+ _Rom_Write_Filename+1
169 ; _i assigned to ?a_Eep_Rom_Write_Filename+2
170 0000 _Eep_Rom_Write_Filename$i set ?a_Eep_Rom_Write_
+ Filename+2
171 ;_n stored from w
172 1703 0183 clrf 3 ;select bank 0
173 1704 00AC movwf ?a_Eep_Rom_Write_Filename
174 ;com.c: 115: unsigned char i = 0;
175 1705 01AE clrf ?a_Eep_Rom_Write_Filename+2
176 ;com.c: 116: unsigned char *file_name_in = (0);
177 1706 01AD clrf ?a_Eep_Rom_Write_Filename+1
178 ;com.c: 118: file_name_in = eeprom_file_name;
179 1707 082B movf ?_Eep_Rom_Write_Filename,w
180 1708 00AD movwf ?a_Eep_Rom_Write_Filename+1
181 ;com.c: 119: if(file_name_in == 0)
182 1709 08AD movf ?a_Eep_Rom_Write_Filename+1
183 170A 1903 btfsc 3,2
184 ;com.c: 120: return 1;
185 170B 3401 retlw 1
186 170C 2F22 goto l22
187 ;com.c: 121: while((file_name_in[i] != 0) && (i
+ < 8))
188 170D l23
189 ;com.c: 122: {
190 170D 082E movf ?a_Eep_Rom_Write_Filename+2,w
191 170E 072D addwf ?a_Eep_Rom_Write_Filename+1,w
192 170F 0084 movwf 4
193 1710 1383 bcf 3,7
194 1711 0800 movf 0,w
195 1712 00CE movwf ?_eeprom_write
196 1713 082C movf ?a_Eep_Rom_Write_Filename,w
197 1714 00F0 movwf btemp
198 1715 1003 bcf 3,0
199 1716 0DF0 rlf btemp
200 1717 1003 bcf 3,0
201 1718 0DF0 rlf btemp
202 1719 1003 bcf 3,0
203 171A 0D70 rlf btemp,w
204 171B 072E addwf ?a_Eep_Rom_Write_Filename+2,w
205 171C 160A 118A 26E3 fcall _eeprom_write
+ 160A 118A
206 ;com.c: 124: i++;
207 1721 0AAE incf ?a_Eep_Rom_Write_Filename+2
208 1722 l22
209 ;com.c: 125: }
210 1722 082E movf ?a_Eep_Rom_Write_Filename+2,w
211 1723 072D addwf ?a_Eep_Rom_Write_Filename+1,w
212 1724 0084 movwf 4
213 1725 1383 bcf 3,7
214 1726 0880 movf 0
215 1727 1903 btfsc 3,2
216 1728 3400 retlw 0
217 1729 3008 movlw 8
218 172A 022E subwf ?a_Eep_Rom_Write_Filename+2,w
219 172B 1803 btfsc 3,0
220 ;com.c: 126: return 0;
221 172C 3400 retlw 0
222 172D 2F0D goto l23
223
224 psect text4
225 172E _Eep_Rom_Read_Filename
226 ; _n assigned to ?a_Eep_Rom_Read_Filename+0
227 0000 _Eep_Rom_Read_Filename$n set ?a_Eep_Rom_Read_Fi
+ lename
228 ; _file_name_out assigned to ?a_Eep_Rom_Read_Fi
+ lename+1
229 0000 _Eep_Rom_Read_Filename$file_name_out set ?a_Eep
+ _Rom_Read_Filename+1
230 ; _i assigned to ?a_Eep_Rom_Read_Filename+2
231 0000 _Eep_Rom_Read_Filename$i set ?a_Eep_Rom_Read_Fi
+ lename+2
232 ;_n stored from w
233 172E 0183 clrf 3 ;select bank 0
234 172F 00CC movwf ?a_Eep_Rom_Read_Filename
235 ;com.c: 138: unsigned char i = 0;
236 1730 01CE clrf ?a_Eep_Rom_Read_Filename+2
237 ;com.c: 139: unsigned char *file_name_out = (0)
+ ;
238 1731 01CD clrf ?a_Eep_Rom_Read_Filename+1
239 ;com.c: 141: file_name_out = eeprom_file_name;
240 1732 084B movf ?_Eep_Rom_Read_Filename,w
241 1733 00CD movwf ?a_Eep_Rom_Read_Filename+1
242 ;com.c: 142: if(file_name_out == 0)
243 1734 08CD movf ?a_Eep_Rom_Read_Filename+1
244 1735 1903 btfsc 3,2
245 ;com.c: 143: return 1;
246 1736 3401 retlw 1
247 1737 l29
248 ;com.c: 145: {
249 1737 084C movf ?a_Eep_Rom_Read_Filename,w
250 1738 00F0 movwf btemp
251 1739 1003 bcf 3,0
252 173A 0DF0 rlf btemp
253 173B 1003 bcf 3,0
254 173C 0DF0 rlf btemp
255 173D 1003 bcf 3,0
256 173E 0D70 rlf btemp,w
257 173F 074E addwf ?a_Eep_Rom_Read_Filename+2,w
258 1740 160A 118A 2697 fcall _eeprom_read
+ 160A 118A
259 1745 00F0 movwf btemp
260 1746 084E movf ?a_Eep_Rom_Read_Filename+2,w
261 1747 074D addwf ?a_Eep_Rom_Read_Filename+1,w
262 1748 0084 movwf 4
263 1749 1383 bcf 3,7
264 174A 0870 movf btemp,w
265 174B 0080 movwf 0
266 ;com.c: 147: i++;
267 174C 0ACE incf ?a_Eep_Rom_Read_Filename+2
268 ;com.c: 148: }while((file_name_out[i-1] != 0) &
+ & (i < 8));
269 174D 084E movf ?a_Eep_Rom_Read_Filename+2,w
270 174E 074D addwf ?a_Eep_Rom_Read_Filename+1,w
271 174F 00F0 movwf btemp
272 1750 0370 decf btemp,w
273 1751 0084 movwf 4
274 1752 0880 movf 0
275 1753 1903 btfsc 3,2
276 1754 3400 retlw 0
277 1755 3008 movlw 8
278 1756 024E subwf ?a_Eep_Rom_Read_Filename+2,w
279 1757 1803 btfsc 3,0
280 ;com.c: 149: return 0;
281 1758 3400 retlw 0
282 1759 2F37 goto l29
283
284 psect text5
285 16AE _Eep_Rom_Delete_Filename
286 ; _i assigned to ?a_Eep_Rom_Delete_Filename+0
287 0000 _Eep_Rom_Delete_Filename$i set ?a_Eep_Rom_Delet
+ e_Filename
288 ;com.c: 161: unsigned char i = 0;
289 16AE 0183 clrf 3 ;select bank 0
290 16AF 01CD clrf ?a_Eep_Rom_Delete_Filename
291 ;com.c: 163: while(i<8)
292 16B0 2EC1 goto l31
293 16B1 l32
294 ;com.c: 164: {
295 16B1 01CE clrf ?_eeprom_write
296 16B2 084B movf ?_Eep_Rom_Delete_Filename,w
297 16B3 00F0 movwf btemp
298 16B4 1003 bcf 3,0
299 16B5 0DF0 rlf btemp
300 16B6 1003 bcf 3,0
301 16B7 0DF0 rlf btemp
302 16B8 1003 bcf 3,0
303 16B9 0D70 rlf btemp,w
304 16BA 074D addwf ?a_Eep_Rom_Delete_Filename,w
305 16BB 160A 118A 26E3 fcall _eeprom_write
+ 160A 118A
306 ;com.c: 166: i++;
307 16C0 0ACD incf ?a_Eep_Rom_Delete_Filename
308 16C1 l31
309 ;com.c: 167: }
310 16C1 3008 movlw 8
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -