📄 fat.lst
字号:
1 .file "fat.c"
2 __SREG__ = 0x3f
3 __SP_H__ = 0x3e
4 __SP_L__ = 0x3d
5 __CCP__ = 0x34
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
17 .Ltext0:
18 .global FAT_LoadPartCluster
20 FAT_LoadPartCluster:
21 .LFB16:
22 .LM1:
23 .LVL0:
24 0000 CF92 push r12
25 0002 DF92 push r13
26 0004 EF92 push r14
27 0006 FF92 push r15
28 0008 0F93 push r16
29 000a 1F93 push r17
30 /* prologue: function */
31 /* frame size = 0 */
32 000c 7A01 movw r14,r20
33 000e 6901 movw r12,r18
34 .LM2:
35 0010 6250 subi r22,lo8(-(-2))
36 0012 7040 sbci r23,hi8(-(-2))
37 0014 8040 sbci r24,hlo8(-(-2))
38 0016 9040 sbci r25,hhi8(-(-2))
39 .LVL1:
40 0018 2091 0000 lds r18,SectorsPerClust
41 001c 3091 0000 lds r19,(SectorsPerClust)+1
42 .LVL2:
43 0020 40E0 ldi r20,lo8(0)
44 0022 50E0 ldi r21,hi8(0)
45 .LVL3:
46 0024 0E94 0000 call __mulsi3
47 .LVL4:
48 0028 00E0 ldi r16,lo8(0)
49 002a 10E0 ldi r17,hi8(0)
50 .LVL5:
51 002c E60E add r14,r22
52 002e F71E adc r15,r23
53 0030 081F adc r16,r24
54 0032 191F adc r17,r25
55 .LVL6:
56 0034 6091 0000 lds r22,FirstDataSector
57 0038 7091 0000 lds r23,(FirstDataSector)+1
58 003c 8091 0000 lds r24,(FirstDataSector)+2
59 0040 9091 0000 lds r25,(FirstDataSector)+3
60 0044 6E0D add r22,r14
61 0046 7F1D adc r23,r15
62 0048 801F adc r24,r16
63 004a 911F adc r25,r17
64 004c E091 0000 lds r30,FAT_ReadSector
65 0050 F091 0000 lds r31,(FAT_ReadSector)+1
66 0054 A601 movw r20,r12
67 0056 0995 icall
68 0058 8111 cpse r24,__zero_reg__
69 005a 81E0 ldi r24,lo8(1)
70 .L2:
71 /* epilogue start */
72 .LM3:
73 005c 1F91 pop r17
74 005e 0F91 pop r16
75 .LVL7:
76 0060 FF90 pop r15
77 0062 EF90 pop r14
78 .LVL8:
79 0064 DF90 pop r13
80 0066 CF90 pop r12
81 .LVL9:
82 0068 0895 ret
83 .LFE16:
85 .global FAT_NextCluster
87 FAT_NextCluster:
88 .LFB17:
89 .LM4:
90 .LVL10:
91 006a 8F92 push r8
92 006c 9F92 push r9
93 006e AF92 push r10
94 0070 BF92 push r11
95 0072 CF92 push r12
96 0074 DF92 push r13
97 0076 EF92 push r14
98 0078 FF92 push r15
99 007a 0F93 push r16
100 007c 1F93 push r17
101 007e DF93 push r29
102 0080 CF93 push r28
103 0082 CDB7 in r28,__SP_L__
104 0084 DEB7 in r29,__SP_H__
105 0086 C050 subi r28,lo8(-(-512))
106 0088 D240 sbci r29,hi8(-(-512))
107 008a 0FB6 in __tmp_reg__,__SREG__
108 008c F894 cli
109 008e DEBF out __SP_H__,r29
110 0090 0FBE out __SREG__,__tmp_reg__
111 0092 CDBF out __SP_L__,r28
112 /* prologue: function */
113 /* frame size = 512 */
114 0094 7B01 movw r14,r22
115 0096 8C01 movw r16,r24
116 .LM5:
117 0098 8091 0000 lds r24,FAT32_Enable
118 009c 8823 tst r24
119 009e 01F0 breq .L5
120 .LVL11:
121 00a0 5701 movw r10,r14
122 00a2 6801 movw r12,r16
123 .LVL12:
124 00a4 57E0 ldi r21,7
125 00a6 D694 1: lsr r13
126 00a8 C794 ror r12
127 00aa B794 ror r11
128 00ac A794 ror r10
129 00ae 5A95 dec r21
130 00b0 01F4 brne 1b
131 00b2 00C0 rjmp .L6
132 .LVL13:
133 .L5:
134 .LM6:
135 00b4 AF2C mov r10,r15
136 00b6 B02E mov r11,r16
137 00b8 C12E mov r12,r17
138 00ba DD24 clr r13
139 .LVL14:
140 .L6:
141 .LM7:
142 00bc 82E0 ldi r24,lo8(2)
143 00be E816 cp r14,r24
144 00c0 F104 cpc r15,__zero_reg__
145 00c2 0105 cpc r16,__zero_reg__
146 00c4 1105 cpc r17,__zero_reg__
147 00c6 00F4 brsh .+2
148 00c8 00C0 rjmp .L7
149 .LM8:
150 00ca 8091 0000 lds r24,FirstFATSector
151 00ce 9091 0000 lds r25,(FirstFATSector)+1
152 00d2 A091 0000 lds r26,(FirstFATSector)+2
153 00d6 B091 0000 lds r27,(FirstFATSector)+3
154 00da A80E add r10,r24
155 00dc B91E adc r11,r25
156 00de CA1E adc r12,r26
157 00e0 DB1E adc r13,r27
158 00e2 E091 0000 lds r30,FAT_ReadSector
159 00e6 F091 0000 lds r31,(FAT_ReadSector)+1
160 00ea 4E01 movw r8,r28
161 00ec 0894 sec
162 00ee 811C adc r8,__zero_reg__
163 00f0 911C adc r9,__zero_reg__
164 00f2 A401 movw r20,r8
165 00f4 C601 movw r24,r12
166 00f6 B501 movw r22,r10
167 00f8 0995 icall
168 00fa 8823 tst r24
169 00fc 01F4 brne .L7
170 .LM9:
171 00fe 8091 0000 lds r24,FAT32_Enable
172 0102 8823 tst r24
173 0104 01F0 breq .L8
174 .LM10:
175 0106 8FE7 ldi r24,lo8(127)
176 0108 90E0 ldi r25,hi8(127)
177 010a A0E0 ldi r26,hlo8(127)
178 010c B0E0 ldi r27,hhi8(127)
179 010e E822 and r14,r24
180 0110 F922 and r15,r25
181 0112 0A23 and r16,r26
182 0114 1B23 and r17,r27
183 0116 C701 movw r24,r14
184 0118 880F lsl r24
185 011a 991F rol r25
186 011c 880F lsl r24
187 011e 991F rol r25
188 0120 880E add r8,r24
189 0122 991E adc r9,r25
190 0124 D401 movw r26,r8
191 0126 2D91 ld r18,X+
192 0128 3D91 ld r19,X+
193 012a 4D91 ld r20,X+
194 012c 5C91 ld r21,X
195 .LVL15:
196 012e 00C0 rjmp .L9
197 .LVL16:
198 .L8:
199 .LM11:
200 0130 8FEF ldi r24,lo8(255)
201 0132 90E0 ldi r25,hi8(255)
202 0134 A0E0 ldi r26,hlo8(255)
203 0136 B0E0 ldi r27,hhi8(255)
204 0138 E822 and r14,r24
205 013a F922 and r15,r25
206 013c 0A23 and r16,r26
207 013e 1B23 and r17,r27
208 0140 C701 movw r24,r14
209 0142 880F lsl r24
210 0144 991F rol r25
211 0146 880E add r8,r24
212 0148 991E adc r9,r25
213 014a D401 movw r26,r8
214 014c 8D91 ld r24,X+
215 014e 9C91 ld r25,X
216 0150 9C01 movw r18,r24
217 .LVL17:
218 0152 40E0 ldi r20,lo8(0)
219 0154 50E0 ldi r21,hi8(0)
220 .LVL18:
221 0156 00C0 rjmp .L9
222 .LVL19:
223 .L7:
224 0158 28EF ldi r18,lo8(268435448)
225 015a 3FEF ldi r19,hi8(268435448)
226 015c 4FEF ldi r20,hlo8(268435448)
227 015e 5FE0 ldi r21,hhi8(268435448)
228 .LVL20:
229 .L9:
230 .LM12:
231 0160 B901 movw r22,r18
232 .LVL21:
233 0162 CA01 movw r24,r20
234 .LVL22:
235 /* epilogue start */
236 0164 C050 subi r28,lo8(-(512))
237 0166 DE4F sbci r29,hi8(-(512))
238 0168 0FB6 in __tmp_reg__,__SREG__
239 016a F894 cli
240 016c DEBF out __SP_H__,r29
241 016e 0FBE out __SREG__,__tmp_reg__
242 0170 CDBF out __SP_L__,r28
243 0172 CF91 pop r28
244 0174 DF91 pop r29
245 0176 1F91 pop r17
246 0178 0F91 pop r16
247 017a FF90 pop r15
248 017c EF90 pop r14
249 .LVL23:
250 017e DF90 pop r13
251 0180 CF90 pop r12
252 0182 BF90 pop r11
253 0184 AF90 pop r10
254 .LVL24:
255 0186 9F90 pop r9
256 0188 8F90 pop r8
257 018a 0895 ret
258 .LFE17:
260 .global CopyDirentruyItem
262 CopyDirentruyItem:
263 .LFB18:
264 .LM13:
265 .LVL25:
266 018c CF93 push r28
267 018e DF93 push r29
268 /* prologue: function */
269 /* frame size = 0 */
270 0190 9C01 movw r18,r24
271 0192 EB01 movw r28,r22
272 .LM14:
273 0194 40E0 ldi r20,lo8(0)
274 0196 50E0 ldi r21,hi8(0)
275 .LVL26:
276 .L12:
277 .LM15:
278 0198 F901 movw r30,r18
279 019a E40F add r30,r20
280 019c F51F adc r31,r21
281 019e DE01 movw r26,r28
282 01a0 A40F add r26,r20
283 01a2 B51F adc r27,r21
284 01a4 8C91 ld r24,X
285 01a6 8083 st Z,r24
286 01a8 4F5F subi r20,lo8(-(1))
287 01aa 5F4F sbci r21,hi8(-(1))
288 01ac 4830 cpi r20,8
289 01ae 5105 cpc r21,__zero_reg__
290 01b0 01F4 brne .L12
291 .LM16:
292 01b2 8885 ldd r24,Y+8
293 01b4 F901 movw r30,r18
294 01b6 8087 std Z+8,r24
295 01b8 8985 ldd r24,Y+9
296 01ba 8187 std Z+9,r24
297 01bc 8A85 ldd r24,Y+10
298 01be 8287 std Z+10,r24
299 .LM17:
300 01c0 8B85 ldd r24,Y+11
301 01c2 8387 std Z+11,r24
302 .LM18:
303 01c4 8C85 ldd r24,Y+12
304 01c6 8487 std Z+12,r24
305 .LM19:
306 01c8 8D85 ldd r24,Y+13
307 01ca 8587 std Z+13,r24
308 .LM20:
309 01cc 8E85 ldd r24,Y+14
310 01ce 8687 std Z+14,r24
311 01d0 8F85 ldd r24,Y+15
312 01d2 8787 std Z+15,r24
313 .LM21:
314 01d4 8889 ldd r24,Y+16
315 01d6 808B std Z+16,r24
316 01d8 8989 ldd r24,Y+17
317 01da 818B std Z+17,r24
318 .LM22:
319 01dc 8A89 ldd r24,Y+18
320 01de 828B std Z+18,r24
321 01e0 8B89 ldd r24,Y+19
322 01e2 838B std Z+19,r24
323 .LM23:
324 01e4 8C89 ldd r24,Y+20
325 01e6 9D89 ldd r25,Y+21
326 01e8 958B std Z+21,r25
327 01ea 848B std Z+20,r24
328 .LM24:
329 01ec 8E89 ldd r24,Y+22
330 01ee 868B std Z+22,r24
331 01f0 8F89 ldd r24,Y+23
332 01f2 878B std Z+23,r24
333 .LM25:
334 01f4 888D ldd r24,Y+24
335 01f6 808F std Z+24,r24
336 01f8 898D ldd r24,Y+25
337 01fa 818F std Z+25,r24
338 .LM26:
339 01fc 8A8D ldd r24,Y+26
340 01fe 9B8D ldd r25,Y+27
341 0200 938F std Z+27,r25
342 0202 828F std Z+26,r24
343 .LM27:
344 0204 8C8D ldd r24,Y+28
345 0206 9D8D ldd r25,Y+29
346 0208 AE8D ldd r26,Y+30
347 020a BF8D ldd r27,Y+31
348 020c 848F std Z+28,r24
349 020e 958F std Z+29,r25
350 0210 A68F std Z+30,r26
351 0212 B78F std Z+31,r27
352 /* epilogue start */
353 .LM28:
354 0214 DF91 pop r29
355 0216 CF91 pop r28
356 .LVL27:
357 0218 0895 ret
358 .LFE18:
360 .global WriteFolderCluster
362 WriteFolderCluster:
363 .LFB19:
364 .LM29:
365 .LVL28:
366 /* prologue: function */
367 /* frame size = 0 */
368 021a 9C01 movw r18,r24
369 .LVL29:
370 .L16:
371 .LBB18:
372 .LBB19:
373 .LM30:
374 021c E199 sbic 60-32,1
375 021e 00C0 rjmp .L16
376 .LM31:
377 0220 3FBB out (62)+1-32,r19
378 0222 2EBB out 62-32,r18
379 .LBE19:
380 .LBE18:
381 .LM32:
382 0224 872F mov r24,r23
383 0226 9927 clr r25
384 0228 AA27 clr r26
385 022a BB27 clr r27
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -