📄 fat.lst
字号:
1 .file "fat.c"
2 .arch atmega32
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
17 .Ltext0:
18 .global fat_addr
20 fat_addr:
21 .LFB4:
22 .LM1:
23 /* prologue: frame size=0 */
24 0000 EF92 push r14
25 0002 FF92 push r15
26 0004 0F93 push r16
27 0006 1F93 push r17
28 /* prologue end (size=4) */
29 0008 8C01 movw r16,r24
30 .LM2:
31 000a AC01 movw r20,r24
32 000c 60E0 ldi r22,lo8(0)
33 000e 70E0 ldi r23,hi8(0)
34 0010 80E0 ldi r24,hlo8(0)
35 0012 90E0 ldi r25,hhi8(0)
36 0014 0E94 0000 call mmc_read_sector
37 .LM3:
38 0018 0A53 subi r16,lo8(-(454))
39 001a 1E4F sbci r17,hi8(-(454))
40 001c F801 movw r30,r16
41 001e 2191 ld r18,Z+
42 0020 8F01 movw r16,r30
43 0022 8081 ld r24,Z
44 0024 075C subi r16,lo8(-(-455))
45 0026 1140 sbci r17,hi8(-(-455))
46 0028 9927 clr r25
47 002a F82E mov r15,r24
48 002c EE24 clr r14
49 002e E20E add r14,r18
50 0030 F11C adc r15,__zero_reg__
51 .LM4:
52 0032 C701 movw r24,r14
53 0034 AA27 clr r26
54 0036 BB27 clr r27
55 0038 A801 movw r20,r16
56 003a BC01 movw r22,r24
57 003c CD01 movw r24,r26
58 003e 0E94 0000 call mmc_read_sector
59 .LM5:
60 0042 C701 movw r24,r14
61 /* epilogue: frame size=0 */
62 0044 1F91 pop r17
63 0046 0F91 pop r16
64 0048 FF90 pop r15
65 004a EF90 pop r14
66 004c 0895 ret
67 /* epilogue end (size=5) */
68 /* function fat_addr size 39 (30) */
69 .LFE4:
71 .global fat_root_dir_addr
73 fat_root_dir_addr:
74 .LFB5:
75 .LM6:
76 /* prologue: frame size=0 */
77 004e 0F93 push r16
78 0050 1F93 push r17
79 /* prologue end (size=2) */
80 0052 8C01 movw r16,r24
81 .LM7:
82 0054 8091 0000 lds r24,volume_boot_record_addr
83 0058 9091 0000 lds r25,(volume_boot_record_addr)+1
84 005c AA27 clr r26
85 005e BB27 clr r27
86 0060 A801 movw r20,r16
87 0062 BC01 movw r22,r24
88 0064 CD01 movw r24,r26
89 0066 0E94 0000 call mmc_read_sector
90 .LM8:
91 006a F801 movw r30,r16
92 006c 8089 ldd r24,Z+16
93 006e 282F mov r18,r24
94 0070 3327 clr r19
95 0072 8689 ldd r24,Z+22
96 0074 9789 ldd r25,Z+23
97 0076 289F mul r18,r24
98 0078 A001 movw r20,r0
99 007a 299F mul r18,r25
100 007c 500D add r21,r0
101 007e 389F mul r19,r24
102 0080 500D add r21,r0
103 0082 1124 clr r1
104 0084 8685 ldd r24,Z+14
105 0086 9785 ldd r25,Z+15
106 0088 840F add r24,r20
107 008a 951F adc r25,r21
108 .LM9:
109 008c 2091 0000 lds r18,volume_boot_record_addr
110 0090 3091 0000 lds r19,(volume_boot_record_addr)+1
111 .LM10:
112 0094 820F add r24,r18
113 0096 931F adc r25,r19
114 /* epilogue: frame size=0 */
115 0098 1F91 pop r17
116 009a 0F91 pop r16
117 009c 0895 ret
118 /* epilogue end (size=3) */
119 /* function fat_root_dir_addr size 40 (35) */
120 .LFE5:
122 .global fat_load
124 fat_load:
125 .LFB7:
126 .LM11:
127 /* prologue: frame size=0 */
128 009e AF92 push r10
129 00a0 BF92 push r11
130 00a2 CF92 push r12
131 00a4 DF92 push r13
132 00a6 EF92 push r14
133 00a8 FF92 push r15
134 00aa 0F93 push r16
135 00ac 1F93 push r17
136 00ae CF93 push r28
137 00b0 DF93 push r29
138 /* prologue end (size=10) */
139 00b2 EC01 movw r28,r24
140 00b4 5B01 movw r10,r22
141 00b6 6A01 movw r12,r20
142 .LM12:
143 00b8 00E0 ldi r16,lo8(0)
144 00ba 10E0 ldi r17,hi8(0)
145 .LBB2:
146 .LM13:
147 00bc 7801 movw r14,r16
148 .L4:
149 .LM14:
150 00be 9801 movw r18,r16
151 00c0 4427 clr r20
152 00c2 5527 clr r21
153 00c4 F501 movw r30,r10
154 00c6 8081 ld r24,Z
155 00c8 9181 ldd r25,Z+1
156 00ca A281 ldd r26,Z+2
157 00cc B381 ldd r27,Z+3
158 00ce 2817 cp r18,r24
159 00d0 3907 cpc r19,r25
160 00d2 4A07 cpc r20,r26
161 00d4 5B07 cpc r21,r27
162 00d6 41F4 brne .L7
163 .LM15:
164 00d8 CE01 movw r24,r28
165 00da AA27 clr r26
166 00dc BB27 clr r27
167 00de 8083 st Z,r24
168 00e0 9183 std Z+1,r25
169 00e2 A283 std Z+2,r26
170 00e4 B383 std Z+3,r27
171 .LM16:
172 00e6 32C0 rjmp .L3
173 .L7:
174 .LM17:
175 00e8 FFEF ldi r31,hi8(-1)
176 00ea CF3F cpi r28,lo8(-1)
177 00ec DF07 cpc r29,r31
178 00ee 71F1 breq .L3
179 .LM18:
180 00f0 CE01 movw r24,r28
181 00f2 8C0F add r24,r28
182 00f4 9D1F adc r25,r29
183 00f6 EC01 movw r28,r24
184 00f8 D170 andi r29,hi8(511)
185 .LM19:
186 00fa 9C01 movw r18,r24
187 00fc 232F mov r18,r19
188 00fe 3327 clr r19
189 0100 2695 lsr r18
190 0102 8091 0000 lds r24,volume_boot_record_addr
191 0106 9091 0000 lds r25,(volume_boot_record_addr)+1
192 010a 280F add r18,r24
193 010c 391F adc r19,r25
194 010e 8091 0000 lds r24,fat_offset
195 0112 9091 0000 lds r25,(fat_offset)+1
196 0116 280F add r18,r24
197 0118 391F adc r19,r25
198 .LM20:
199 011a 2E15 cp r18,r14
200 011c 3F05 cpc r19,r15
201 011e 49F0 breq .L9
202 .LM21:
203 0120 7901 movw r14,r18
204 .LM22:
205 0122 C901 movw r24,r18
206 0124 AA27 clr r26
207 0126 BB27 clr r27
208 0128 A601 movw r20,r12
209 012a BC01 movw r22,r24
210 012c CD01 movw r24,r26
211 012e 0E94 0000 call mmc_read_sector
212 .L9:
213 .LM23:
214 0132 F601 movw r30,r12
215 0134 EC0F add r30,r28
216 0136 FD1F adc r31,r29
217 0138 8181 ldd r24,Z+1
218 013a 9927 clr r25
219 013c D82F mov r29,r24
220 013e CC27 clr r28
221 0140 8081 ld r24,Z
222 0142 C80F add r28,r24
223 0144 D11D adc r29,__zero_reg__
224 .LM24:
225 0146 0F5F subi r16,lo8(-(1))
226 0148 1F4F sbci r17,hi8(-(1))
227 014a B9CF rjmp .L4
228 .L3:
229 .LBE2:
230 /* epilogue: frame size=0 */
231 014c DF91 pop r29
232 014e CF91 pop r28
233 0150 1F91 pop r17
234 0152 0F91 pop r16
235 0154 FF90 pop r15
236 0156 EF90 pop r14
237 0158 DF90 pop r13
238 015a CF90 pop r12
239 015c BF90 pop r11
240 015e AF90 pop r10
241 0160 0895 ret
242 /* epilogue end (size=11) */
243 /* function fat_load size 99 (78) */
244 .LFE7:
246 .global fat_read_dir_ent
248 fat_read_dir_ent:
249 .LFB6:
250 .LM25:
251 /* prologue: frame size=4 */
252 0162 5F92 push r5
253 0164 6F92 push r6
254 0166 7F92 push r7
255 0168 8F92 push r8
256 016a 9F92 push r9
257 016c AF92 push r10
258 016e BF92 push r11
259 0170 CF92 push r12
260 0172 DF92 push r13
261 0174 EF92 push r14
262 0176 FF92 push r15
263 0178 0F93 push r16
264 017a 1F93 push r17
265 017c CF93 push r28
266 017e DF93 push r29
267 0180 CDB7 in r28,__SP_L__
268 0182 DEB7 in r29,__SP_H__
269 0184 2497 sbiw r28,4
270 0186 0FB6 in __tmp_reg__,__SREG__
271 0188 F894 cli
272 018a DEBF out __SP_H__,r29
273 018c 0FBE out __SREG__,__tmp_reg__
274 018e CDBF out __SP_L__,r28
275 /* prologue end (size=23) */
276 0190 562E mov r5,r22
277 0192 3A01 movw r6,r20
278 0194 4901 movw r8,r18
279 0196 6801 movw r12,r16
280 .LM26:
281 0198 AA24 clr r10
282 019a BB24 clr r11
283 .LM27:
284 019c 1982 std Y+1,__zero_reg__
285 019e 1A82 std Y+2,__zero_reg__
286 01a0 1B82 std Y+3,__zero_reg__
287 01a2 1C82 std Y+4,__zero_reg__
288 .LM28:
289 01a4 0097 sbiw r24,0
290 01a6 49F4 brne .L11
291 .LM29:
292 01a8 C801 movw r24,r16
293 01aa 0E94 0000 call fat_root_dir_addr
294 01ae AA27 clr r26
295 01b0 BB27 clr r27
296 01b2 25C0 rjmp .L34
297 .L33:
298 .LBB3:
299 .LBB4:
300 .LM30:
301 01b4 8FEF ldi r24,lo8(-1)
302 01b6 9FEF ldi r25,hi8(-1)
303 01b8 74C0 rjmp .L10
304 .L11:
305 .LBE4:
306 .LBE3:
307 .LM31:
308 01ba A801 movw r20,r16
309 01bc BE01 movw r22,r28
310 01be 6F5F subi r22,lo8(-(1))
311 01c0 7F4F sbci r23,hi8(-(1))
312 01c2 0E94 0000 call fat_load
313 .LM32:
314 01c6 8981 ldd r24,Y+1
315 01c8 9A81 ldd r25,Y+2
316 01ca AB81 ldd r26,Y+3
317 01cc BC81 ldd r27,Y+4
318 01ce 0297 sbiw r24,2
319 01d0 A109 sbc r26,__zero_reg__
320 01d2 B109 sbc r27,__zero_reg__
321 01d4 2091 0000 lds r18,cluster_size
322 01d8 3327 clr r19
323 01da 4427 clr r20
324 01dc 5527 clr r21
325 01de BC01 movw r22,r24
326 01e0 CD01 movw r24,r26
327 01e2 0E94 0000 call __mulsi3
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -