📄 fat.lst
字号:
328 01e6 9B01 movw r18,r22
329 01e8 AC01 movw r20,r24
330 01ea 8091 0000 lds r24,cluster_offset
331 01ee 9091 0000 lds r25,(cluster_offset)+1
332 01f2 AA27 clr r26
333 01f4 BB27 clr r27
334 01f6 820F add r24,r18
335 01f8 931F adc r25,r19
336 01fa A41F adc r26,r20
337 01fc B51F adc r27,r21
338 .L34:
339 01fe 8983 std Y+1,r24
340 0200 9A83 std Y+2,r25
341 0202 AB83 std Y+3,r26
342 0204 BC83 std Y+4,r27
343 .LBB5:
344 .LM33:
345 0206 E980 ldd r14,Y+1
346 0208 FA80 ldd r15,Y+2
347 .L13:
348 .LM34:
349 020a C701 movw r24,r14
350 020c AA27 clr r26
351 020e BB27 clr r27
352 0210 A601 movw r20,r12
353 0212 BC01 movw r22,r24
354 0214 CD01 movw r24,r26
355 0216 0E94 0000 call mmc_read_sector
356 021a 452D mov r20,r5
357 021c 5527 clr r21
358 021e F601 movw r30,r12
359 0220 9601 movw r18,r12
360 0222 2150 subi r18,lo8(-(511))
361 0224 3E4F sbci r19,hi8(-(511))
362 .L28:
363 .LBB6:
364 .LM35:
365 0226 9081 ld r25,Z
366 0228 9923 tst r25
367 022a 21F2 breq .L33
368 .LM36:
369 022c 8385 ldd r24,Z+11
370 022e 8F30 cpi r24,lo8(15)
371 0230 81F1 breq .L18
372 0232 953E cpi r25,lo8(-27)
373 0234 71F1 breq .L18
374 .LM37:
375 0236 A416 cp r10,r20
376 0238 B506 cpc r11,r21
377 023a 41F5 brne .L21
378 .LBB7:
379 .LM38:
380 023c 90E0 ldi r25,lo8(0)
381 023e 2EE2 ldi r18,lo8(46)
382 0240 AF01 movw r20,r30
383 .L27:
384 .LM39:
385 0242 DA01 movw r26,r20
386 0244 8C91 ld r24,X
387 0246 8032 cpi r24,lo8(32)
388 0248 51F0 breq .L24
389 .LM40:
390 024a 9830 cpi r25,lo8(8)
391 024c 19F4 brne .L26
392 .LM41:
393 024e D801 movw r26,r16
394 0250 2D93 st X+,r18
395 0252 8D01 movw r16,r26
396 .L26:
397 .LM42:
398 0254 DA01 movw r26,r20
399 0256 8C91 ld r24,X
400 0258 D801 movw r26,r16
401 025a 8D93 st X+,r24
402 025c 8D01 movw r16,r26
403 .L24:
404 .LM43:
405 025e 9F5F subi r25,lo8(-(1))
406 0260 4F5F subi r20,lo8(-(1))
407 0262 5F4F sbci r21,hi8(-(1))
408 0264 9B30 cpi r25,lo8(11)
409 0266 68F3 brlo .L27
410 .LBE7:
411 .LM44:
412 0268 D801 movw r26,r16
413 026a 1C92 st X,__zero_reg__
414 .LM45:
415 026c 8385 ldd r24,Z+11
416 026e D401 movw r26,r8
417 0270 8C93 st X,r24
418 .LM46:
419 0272 248D ldd r18,Z+28
420 0274 358D ldd r19,Z+29
421 0276 468D ldd r20,Z+30
422 0278 578D ldd r21,Z+31
423 027a D301 movw r26,r6
424 027c 2D93 st X+,r18
425 027e 3D93 st X+,r19
426 0280 4D93 st X+,r20
427 0282 5C93 st X,r21
428 0284 1397 sbiw r26,3
429 .LM47:
430 0286 828D ldd r24,Z+26
431 0288 938D ldd r25,Z+27
432 .LM48:
433 028a 0BC0 rjmp .L10
434 .L21:
435 .LM49:
436 028c 0894 sec
437 028e A11C adc r10,__zero_reg__
438 0290 B11C adc r11,__zero_reg__
439 .L18:
440 0292 B096 adiw r30,32
441 .LM50:
442 0294 2E17 cp r18,r30
443 0296 3F07 cpc r19,r31
444 0298 30F6 brsh .L28
445 .LBE6:
446 .LM51:
447 029a 0894 sec
448 029c E11C adc r14,__zero_reg__
449 029e F11C adc r15,__zero_reg__
450 02a0 B4CF rjmp .L13
451 .L10:
452 .LBE5:
453 /* epilogue: frame size=4 */
454 02a2 2496 adiw r28,4
455 02a4 0FB6 in __tmp_reg__,__SREG__
456 02a6 F894 cli
457 02a8 DEBF out __SP_H__,r29
458 02aa 0FBE out __SREG__,__tmp_reg__
459 02ac CDBF out __SP_L__,r28
460 02ae DF91 pop r29
461 02b0 CF91 pop r28
462 02b2 1F91 pop r17
463 02b4 0F91 pop r16
464 02b6 FF90 pop r15
465 02b8 EF90 pop r14
466 02ba DF90 pop r13
467 02bc CF90 pop r12
468 02be BF90 pop r11
469 02c0 AF90 pop r10
470 02c2 9F90 pop r9
471 02c4 8F90 pop r8
472 02c6 7F90 pop r7
473 02c8 6F90 pop r6
474 02ca 5F90 pop r5
475 02cc 0895 ret
476 /* epilogue end (size=22) */
477 /* function fat_read_dir_ent size 182 (137) */
478 .LFE6:
480 .global fat_cluster_data_store
482 fat_cluster_data_store:
483 .LFB8:
484 .LM52:
485 /* prologue: frame size=512 */
486 02ce CF93 push r28
487 02d0 DF93 push r29
488 02d2 CDB7 in r28,__SP_L__
489 02d4 DEB7 in r29,__SP_H__
490 02d6 C050 subi r28,lo8(512)
491 02d8 D240 sbci r29,hi8(512)
492 02da 0FB6 in __tmp_reg__,__SREG__
493 02dc F894 cli
494 02de DEBF out __SP_H__,r29
495 02e0 0FBE out __SREG__,__tmp_reg__
496 02e2 CDBF out __SP_L__,r28
497 /* prologue end (size=11) */
498 .LM53:
499 02e4 CE01 movw r24,r28
500 02e6 0196 adiw r24,1
501 02e8 0E94 0000 call fat_addr
502 02ec 9093 0000 sts (volume_boot_record_addr)+1,r25
503 02f0 8093 0000 sts volume_boot_record_addr,r24
504 .LM54:
505 02f4 AA27 clr r26
506 02f6 BB27 clr r27
507 02f8 AE01 movw r20,r28
508 02fa 4F5F subi r20,lo8(-(1))
509 02fc 5F4F sbci r21,hi8(-(1))
510 02fe BC01 movw r22,r24
511 0300 CD01 movw r24,r26
512 0302 0E94 0000 call mmc_read_sector
513 .LM55:
514 0306 8E85 ldd r24,Y+14
515 0308 8093 0000 sts cluster_size,r24
516 .LM56:
517 030c 8F85 ldd r24,Y+15
518 030e 9889 ldd r25,Y+16
519 0310 9093 0000 sts (fat_offset)+1,r25
520 0314 8093 0000 sts fat_offset,r24
521 .LM57:
522 0318 8C85 ldd r24,Y+12
523 031a 9D85 ldd r25,Y+13
524 031c 75E0 ldi r23,5
525 031e 880F 1: lsl r24
526 0320 991F rol r25
527 0322 7A95 dec r23
528 0324 E1F7 brne 1b
529 0326 892F mov r24,r25
530 0328 9927 clr r25
531 032a 8695 lsr r24
532 032c 9093 0000 sts (cluster_offset)+1,r25
533 0330 8093 0000 sts cluster_offset,r24
534 .LM58:
535 0334 CE01 movw r24,r28
536 0336 0196 adiw r24,1
537 0338 0E94 0000 call fat_root_dir_addr
538 033c 2091 0000 lds r18,cluster_offset
539 0340 3091 0000 lds r19,(cluster_offset)+1
540 0344 280F add r18,r24
541 0346 391F adc r19,r25
542 0348 3093 0000 sts (cluster_offset)+1,r19
543 034c 2093 0000 sts cluster_offset,r18
544 /* epilogue: frame size=512 */
545 0350 C050 subi r28,lo8(-512)
546 0352 DE4F sbci r29,hi8(-512)
547 0354 0FB6 in __tmp_reg__,__SREG__
548 0356 F894 cli
549 0358 DEBF out __SP_H__,r29
550 035a 0FBE out __SREG__,__tmp_reg__
551 035c CDBF out __SP_L__,r28
552 035e DF91 pop r29
553 0360 CF91 pop r28
554 0362 0895 ret
555 /* epilogue end (size=10) */
556 /* function fat_cluster_data_store size 75 (54) */
557 .LFE8:
559 .global fat_read_file
561 fat_read_file:
562 .LFB9:
563 .LM59:
564 /* prologue: frame size=4 */
565 0364 4F92 push r4
566 0366 5F92 push r5
567 0368 6F92 push r6
568 036a 7F92 push r7
569 036c 8F92 push r8
570 036e 9F92 push r9
571 0370 AF92 push r10
572 0372 BF92 push r11
573 0374 CF92 push r12
574 0376 DF92 push r13
575 0378 EF92 push r14
576 037a FF92 push r15
577 037c 0F93 push r16
578 037e 1F93 push r17
579 0380 CF93 push r28
580 0382 DF93 push r29
581 0384 CDB7 in r28,__SP_L__
582 0386 DEB7 in r29,__SP_H__
583 0388 2497 sbiw r28,4
584 038a 0FB6 in __tmp_reg__,__SREG__
585 038c F894 cli
586 038e DEBF out __SP_H__,r29
587 0390 0FBE out __SREG__,__tmp_reg__
588 0392 CDBF out __SP_L__,r28
589 /* prologue end (size=24) */
590 0394 8C01 movw r16,r24
591 0396 2B01 movw r4,r22
592 0398 3901 movw r6,r18
593 039a 4A01 movw r8,r20
594 .LM60:
595 039c 8091 0000 lds r24,cluster_size
596 03a0 282F mov r18,r24
597 03a2 3327 clr r19
598 03a4 4427 clr r20
599 03a6 5527 clr r21
600 03a8 C401 movw r24,r8
601 03aa B301 movw r22,r6
602 03ac 0E94 0000 call __udivmodsi4
603 03b0 2983 std Y+1,r18
604 03b2 3A83 std Y+2,r19
605 03b4 4B83 std Y+3,r20
606 03b6 5C83 std Y+4,r21
607 .LM61:
608 03b8 A201 movw r20,r4
609 03ba BE01 movw r22,r28
610 03bc 6F5F subi r22,lo8(-(1))
611 03be 7F4F sbci r23,hi8(-(1))
612 03c0 C801 movw r24,r16
613 03c2 0E94 0000 call fat_load
614 .LM62:
615 03c6 8981 ldd r24,Y+1
616 03c8 9A81 ldd r25,Y+2
617 03ca AB81 ldd r26,Y+3
618 03cc BC81 ldd r27,Y+4
619 03ce 0297 sbiw r24,2
620 03d0 A109 sbc r26,__zero_reg__
621 03d2 B109 sbc r27,__zero_reg__
622 03d4 2091 0000 lds r18,cluster_size
623 03d8 A22E mov r10,r18
624 03da BB24 clr r11
625 03dc CC24 clr r12
626 03de DD24 clr r13
627 03e0 BC01 movw r22,r24
628 03e2 CD01 movw r24,r26
629 03e4 A601 movw r20,r12
630 03e6 9501 movw r18,r10
631 03e8 0E94 0000 call __mulsi3
632 03ec 7B01 movw r14,r22
633 03ee 8C01 movw r16,r24
634 03f0 8091 0000 lds r24,cluster_offset
635 03f4 9091 0000 lds r25,(cluster_offset)+1
636 03f8 AA27 clr r26
637 03fa BB27 clr r27
638 03fc E80E add r14,r24
639 03fe F91E adc r15,r25
640 0400 0A1F adc r16,r26
641 0402 1B1F adc r17,r27
642 .LM63:
643 0404 C401 movw r24,r8
644 0406 B301 movw r22,r6
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -