📄 mmc.lst
字号:
1 .file "mmc.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 mmc_write_byte
20 mmc_write_byte:
21 .LFB7:
22 .LM1:
23 /* prologue: frame size=0 */
24 /* prologue end (size=0) */
25 .LM2:
26 0000 8FB9 out 47-0x20,r24
27 .L2:
28 .LM3:
29 0002 779B sbis 46-0x20,7
30 0004 FECF rjmp .L2
31 /* epilogue: frame size=0 */
32 0006 0895 ret
33 /* epilogue end (size=1) */
34 /* function mmc_write_byte size 4 (3) */
35 .LFE7:
37 .global mmc_read_byte
39 mmc_read_byte:
40 .LFB6:
41 .LM4:
42 /* prologue: frame size=0 */
43 /* prologue end (size=0) */
44 .LM5:
45 0008 8FEF ldi r24,lo8(-1)
46 000a 8FB9 out 47-0x20,r24
47 .L6:
48 .LM6:
49 000c 779B sbis 46-0x20,7
50 000e FECF rjmp .L6
51 .LM7:
52 0010 8FB1 in r24,47-0x20
53 .LM8:
54 0012 9927 clr r25
55 /* epilogue: frame size=0 */
56 0014 0895 ret
57 /* epilogue end (size=1) */
58 /* function mmc_read_byte size 7 (6) */
59 .LFE6:
61 .global mmc_write_command
63 mmc_write_command:
64 .LFB5:
65 .LM9:
66 /* prologue: frame size=0 */
67 /* prologue end (size=0) */
68 0016 FC01 movw r30,r24
69 .LM10:
70 0018 2FEF ldi r18,lo8(-1)
71 .LM11:
72 001a 40E0 ldi r20,lo8(0)
73 001c 50E0 ldi r21,hi8(0)
74 .LM12:
75 001e C39A sbi 56-0x20,3
76 .LBB2:
77 .LBB3:
78 .LM13:
79 0020 2FB9 out 47-0x20,r18
80 .L10:
81 .LM14:
82 0022 779B sbis 46-0x20,7
83 0024 FECF rjmp .L10
84 .LBE3:
85 .LBE2:
86 .LM15:
87 0026 C398 cbi 56-0x20,3
88 .LBB4:
89 .LM16:
90 0028 90E0 ldi r25,lo8(0)
91 .L21:
92 .LBB5:
93 .LM17:
94 002a 8191 ld r24,Z+
95 .LBB6:
96 .LM18:
97 002c 8FB9 out 47-0x20,r24
98 .L17:
99 .LM19:
100 002e 779B sbis 46-0x20,7
101 0030 FECF rjmp .L17
102 .LBE6:
103 .LBE5:
104 .LM20:
105 0032 9F5F subi r25,lo8(-(1))
106 0034 9630 cpi r25,lo8(6)
107 0036 C8F3 brlo .L21
108 0038 3FEF ldi r19,lo8(-1)
109 .L29:
110 .LBE4:
111 .LBB7:
112 .LBB8:
113 .LM21:
114 003a 3FB9 out 47-0x20,r19
115 .L24:
116 .LM22:
117 003c 779B sbis 46-0x20,7
118 003e FECF rjmp .L24
119 .LM23:
120 0040 8FB1 in r24,47-0x20
121 .LBE8:
122 .LBE7:
123 .LM24:
124 0042 282F mov r18,r24
125 .LM25:
126 0044 CA01 movw r24,r20
127 0046 4F5F subi r20,lo8(-(1))
128 0048 5F4F sbci r21,hi8(-(1))
129 004a 855F subi r24,lo8(501)
130 004c 9140 sbci r25,hi8(501)
131 004e 10F4 brsh .L23
132 .LM26:
133 0050 2F3F cpi r18,lo8(-1)
134 0052 99F3 breq .L29
135 .L23:
136 .LM27:
137 0054 822F mov r24,r18
138 0056 9927 clr r25
139 /* epilogue: frame size=0 */
140 0058 0895 ret
141 /* epilogue end (size=1) */
142 /* function mmc_write_command size 35 (34) */
143 .LFE5:
145 .data
146 .LC0:
147 0000 40 .byte 64
148 0001 00 .byte 0
149 0002 00 .byte 0
150 0003 00 .byte 0
151 0004 00 .byte 0
152 0005 95 .byte -107
153 .text
154 .global mmc_init
156 mmc_init:
157 .LFB4:
158 .LM28:
159 /* prologue: frame size=6 */
160 005a 1F93 push r17
161 005c CF93 push r28
162 005e DF93 push r29
163 0060 CDB7 in r28,__SP_L__
164 0062 DEB7 in r29,__SP_H__
165 0064 2697 sbiw r28,6
166 0066 0FB6 in __tmp_reg__,__SREG__
167 0068 F894 cli
168 006a DEBF out __SP_H__,r29
169 006c 0FBE out __SREG__,__tmp_reg__
170 006e CDBF out __SP_L__,r28
171 /* prologue end (size=11) */
172 .LM29:
173 0070 10E0 ldi r17,lo8(0)
174 .LM30:
175 0072 BE98 cbi 55-0x20,6
176 .LM31:
177 0074 BF9A sbi 55-0x20,7
178 .LM32:
179 0076 BD9A sbi 55-0x20,5
180 .LM33:
181 0078 BB9A sbi 55-0x20,3
182 .LM34:
183 007a BC9A sbi 55-0x20,4
184 .LM35:
185 007c C39A sbi 56-0x20,3
186 .LBB9:
187 .LM36:
188 007e 812F mov r24,r17
189 .L37:
190 .LM37:
191 /* #APP */
192 0080 0000 nop
193 .LM38:
194 /* #NOAPP */
195 0082 8F5F subi r24,lo8(-(1))
196 0084 883C cpi r24,lo8(-56)
197 0086 E0F3 brlo .L37
198 .LBE9:
199 .LM39:
200 0088 83E5 ldi r24,lo8(83)
201 008a 8DB9 out 45-0x20,r24
202 .LM40:
203 008c 1EB8 out 46-0x20,__zero_reg__
204 .LBB10:
205 .LM41:
206 008e 80E0 ldi r24,lo8(0)
207 0090 9FEF ldi r25,lo8(-1)
208 .L45:
209 .LBB11:
210 .LBB12:
211 .LM42:
212 0092 9FB9 out 47-0x20,r25
213 .L41:
214 .LM43:
215 0094 779B sbis 46-0x20,7
216 0096 FECF rjmp .L41
217 .LBE12:
218 .LBE11:
219 .LM44:
220 0098 8F5F subi r24,lo8(-(1))
221 009a 8F30 cpi r24,lo8(15)
222 009c D0F3 brlo .L45
223 .LBE10:
224 .LM45:
225 009e 86E0 ldi r24,lo8(6)
226 00a0 A0E0 ldi r26,lo8(.LC0)
227 00a2 B0E0 ldi r27,hi8(.LC0)
228 00a4 FE01 movw r30,r28
229 00a6 3196 adiw r30,1
230 00a8 0D90 ld __tmp_reg__,X+
231 00aa 0192 st Z+,__tmp_reg__
232 00ac 8A95 dec r24
233 00ae E1F7 brne .-8
234 .LM46:
235 00b0 07C0 rjmp .L46
236 .L49:
237 .LM47:
238 00b2 812F mov r24,r17
239 00b4 1F5F subi r17,lo8(-(1))
240 00b6 893C cpi r24,lo8(-55)
241 00b8 18F0 brlo .L46
242 .LM48:
243 00ba 81E0 ldi r24,lo8(1)
244 00bc 90E0 ldi r25,hi8(1)
245 00be 20C0 rjmp .L33
246 .L46:
247 00c0 CE01 movw r24,r28
248 00c2 0196 adiw r24,1
249 00c4 0E94 0000 call mmc_write_command
250 00c8 8130 cpi r24,lo8(1)
251 00ca 99F7 brne .L49
252 00cc 10E0 ldi r17,lo8(0)
253 .LM49:
254 00ce 81E4 ldi r24,lo8(65)
255 00d0 8983 std Y+1,r24
256 .LM50:
257 00d2 8FEF ldi r24,lo8(-1)
258 00d4 8E83 std Y+6,r24
259 .LM51:
260 00d6 07C0 rjmp .L50
261 .L53:
262 .LM52:
263 00d8 812F mov r24,r17
264 00da 1F5F subi r17,lo8(-(1))
265 00dc 8536 cpi r24,lo8(101)
266 00de 18F0 brlo .L50
267 .LM53:
268 00e0 82E0 ldi r24,lo8(2)
269 00e2 90E0 ldi r25,hi8(2)
270 00e4 0DC0 rjmp .L33
271 .L50:
272 00e6 CE01 movw r24,r28
273 00e8 0196 adiw r24,1
274 00ea 0E94 0000 call mmc_write_command
275 00ee 8823 tst r24
276 00f0 99F7 brne .L53
277 .LM54:
278 00f2 8DB1 in r24,45-0x20
279 00f4 8C7F andi r24,lo8(-4)
280 00f6 8DB9 out 45-0x20,r24
281 .LM55:
282 00f8 709A sbi 46-0x20,0
283 .LM56:
284 00fa C39A sbi 56-0x20,3
285 .LM57:
286 00fc 80E0 ldi r24,lo8(0)
287 00fe 90E0 ldi r25,hi8(0)
288 .L33:
289 /* epilogue: frame size=6 */
290 0100 2696 adiw r28,6
291 0102 0FB6 in __tmp_reg__,__SREG__
292 0104 F894 cli
293 0106 DEBF out __SP_H__,r29
294 0108 0FBE out __SREG__,__tmp_reg__
295 010a CDBF out __SP_L__,r28
296 010c DF91 pop r29
297 010e CF91 pop r28
298 0110 1F91 pop r17
299 0112 0895 ret
300 /* epilogue end (size=10) */
301 /* function mmc_init size 94 (73) */
302 .LFE4:
304 .data
305 .LC1:
306 0006 58 .byte 88
307 0007 00 .byte 0
308 0008 00 .byte 0
309 0009 00 .byte 0
310 000a 00 .byte 0
311 000b FF .byte -1
312 .text
313 .global mmc_write_sector
315 mmc_write_sector:
316 .LFB8:
317 .LM58:
318 /* prologue: frame size=6 */
319 0114 CF92 push r12
320 0116 DF92 push r13
321 0118 EF92 push r14
322 011a FF92 push r15
323 011c 0F93 push r16
324 011e 1F93 push r17
325 0120 CF93 push r28
326 0122 DF93 push r29
327 0124 CDB7 in r28,__SP_L__
328 0126 DEB7 in r29,__SP_H__
329 0128 2697 sbiw r28,6
330 012a 0FB6 in __tmp_reg__,__SREG__
331 012c F894 cli
332 012e DEBF out __SP_H__,r29
333 0130 0FBE out __SREG__,__tmp_reg__
334 0132 CDBF out __SP_L__,r28
335 /* prologue end (size=16) */
336 0134 6B01 movw r12,r22
337 0136 7C01 movw r14,r24
338 0138 8A01 movw r16,r20
339 .LM59:
340 013a BE01 movw r22,r28
341 013c 6F5F subi r22,lo8(-(1))
342 013e 7F4F sbci r23,hi8(-(1))
343 0140 26E0 ldi r18,lo8(6)
344 0142 40E0 ldi r20,lo8(.LC1)
345 0144 50E0 ldi r21,hi8(.LC1)
346 0146 DB01 movw r26,r22
347 0148 FA01 movw r30,r20
348 014a 0190 ld __tmp_reg__,Z+
349 014c 0D92 st X+,__tmp_reg__
350 014e 2A95 dec r18
351 0150 E1F7 brne .-8
352 .LM60:
353 0152 29E0 ldi r18,9
354 0154 CC0C 1: lsl r12
355 0156 DD1C rol r13
356 0158 EE1C rol r14
357 015a FF1C rol r15
358 015c 2A95 dec r18
359 015e D1F7 brne 1b
360 .LM61:
361 0160 2F2D mov r18,r15
362 0162 3327 clr r19
363 0164 4427 clr r20
364 0166 5527 clr r21
365 0168 2A83 std Y+2,r18
366 .LM62:
367 016a EB82 std Y+3,r14
368 .LM63:
369 016c 80E0 ldi r24,lo8(65280)
370 016e 9FEF ldi r25,hi8(65280)
371 0170 A0E0 ldi r26,hlo8(65280)
372 0172 B0E0 ldi r27,hhi8(65280)
373 0174 C822 and r12,r24
374 0176 D922 and r13,r25
375 0178 EA22 and r14,r26
376 017a FB22 and r15,r27
377 017c BB27 clr r27
378 017e AF2D mov r26,r15
379 0180 9E2D mov r25,r14
380 0182 8D2D mov r24,r13
381 0184 8C83 std Y+4,r24
382 .LM64:
383 0186 CB01 movw r24,r22
384 0188 0E94 0000 call mmc_write_command
385 .LM65:
386 018c 8823 tst r24
387 018e 11F0 breq .L59
388 .LM66:
389 0190 9927 clr r25
390 0192 2DC0 rjmp .L58
391 .L59:
392 .LBB13:
393 .LM67:
394 0194 982F mov r25,r24
395 0196 2FEF ldi r18,lo8(-1)
396 .L67:
397 .LBB14:
398 .LBB15:
399 .LM68:
400 0198 2FB9 out 47-0x20,r18
401 .L63:
402 .LM69:
403 019a 779B sbis 46-0x20,7
404 019c FECF rjmp .L63
405 .LM70:
406 019e 8FB1 in r24,47-0x20
407 .LBE15:
408 .LBE14:
409 .LM71:
410 01a0 9F5F subi r25,lo8(-(1))
411 01a2 9436 cpi r25,lo8(100)
412 01a4 C8F3 brlo .L67
413 .LBE13:
414 .LBB16:
415 .LBB17:
416 .LM72:
417 01a6 8EEF ldi r24,lo8(-2)
418 01a8 8FB9 out 47-0x20,r24
419 .L68:
420 .LM73:
421 01aa 779B sbis 46-0x20,7
422 01ac FECF rjmp .L68
423 .LBE17:
424 .LBE16:
425 .LBB18:
426 .LM74:
427 01ae 20E0 ldi r18,lo8(0)
428 01b0 30E0 ldi r19,hi8(0)
429 .L79:
430 .LBB19:
431 .LM75:
432 01b2 D801 movw r26,r16
433 01b4 8D91 ld r24,X+
434 01b6 8D01 movw r16,r26
435 .LBB20:
436 .LM76:
437 01b8 8FB9 out 47-0x20,r24
438 .L75:
439 .LM77:
440 01ba 779B sbis 46-0x20,7
441 01bc FECF rjmp .L75
442 .LBE20:
443 .LBE19:
444 .LM78:
445 01be 2F5F subi r18,lo8(-(1))
446 01c0 3F4F sbci r19,hi8(-(1))
447 01c2 B2E0 ldi r27,hi8(512)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -