disk.lis

来自「Atmega64单片机程序(完整工程)」· LIS 代码 · 共 1,577 行 · 第 1/5 页

LIS
1,577
字号
 053E           ;                 if(temp!=0)
 053E CC20              tst R12
 0540 11F4              brne X4
 0542 DD20              tst R13
 0544 79F0              breq L68
 0546           X4:
 0546           ;                     DiskInfo[i].SecPerDisk=temp ;
 0546 8EE2              ldi R24,46
 0548 8A9D              mul R24,R10
 054A F001              movw R30,R0
 054C 80E0              ldi R24,<_DiskInfo+12
 054E 90E0              ldi R25,>_DiskInfo+12
 0550 E80F              add R30,R24
 0552 F91F              adc R31,R25
 0554 1601              movw R2,R12
 0556 4424              clr R4
 0558 5524              clr R5
 055A 2082              std z+0,R2
 055C 3182              std z+1,R3
 055E 4282              std z+2,R4
 0560 5382              std z+3,R5
 0562 4EC0              xjmp L69
 0564           L68:
 0564           ;                 else 
 0564           ;                 {
 0564           ;                     DiskInfo[i].SecPerDisk=((INT32U)Buf[33]<<8)+Buf[32];
 0564 88E0              ldi R24,8
 0566 90E0              ldi R25,0
 0568 F701              movw R30,R14
 056A 21A0              ldd R2,z+33
 056C 3324              clr R3
 056E 4424              clr R4
 0570 5524              clr R5
 0572 8A93              st -y,R24
 0574 8101              movw R16,R2
 0576 9201              movw R18,R4
 0578 0E940000          xcall lsl32
 057C 1801              movw R2,R16
 057E 2901              movw R4,R18
 0580 F701              movw R30,R14
 0582 60A0              ldd R6,z+32
 0584 7724              clr R7
 0586 8824              clr R8
 0588 9924              clr R9
 058A 260C              add R2,R6
 058C 371C              adc R3,R7
 058E 481C              adc R4,R8
 0590 591C              adc R5,R9
 0592 8EE2              ldi R24,46
 0594 8A9D              mul R24,R10
 0596 F001              movw R30,R0
 0598 80E0              ldi R24,<_DiskInfo+12
 059A 90E0              ldi R25,>_DiskInfo+12
 059C E80F              add R30,R24
 059E F91F              adc R31,R25
 05A0 2082              std z+0,R2
 05A2 3182              std z+1,R3
 05A4 4282              std z+2,R4
 05A6 5382              std z+3,R5
 05A8           ;                     DiskInfo[i].SecPerDisk|=(((INT32U)Buf[34]<<16)+((INT32U)Buf[35]<<24));
 05A8 8EE2              ldi R24,46
 05AA 8A9D              mul R24,R10
 05AC 1001              movw R2,R0
 05AE 80E0              ldi R24,<_DiskInfo+12
 05B0 90E0              ldi R25,>_DiskInfo+12
 05B2 280E              add R2,R24
 05B4 391E              adc R3,R25
 05B6 88E1              ldi R24,24
 05B8 90E0              ldi R25,0
 05BA F701              movw R30,R14
 05BC 43A0              ldd R4,z+35
 05BE 5524              clr R5
 05C0 6624              clr R6
 05C2 7724              clr R7
 05C4 8A93              st -y,R24
 05C6 8201              movw R16,R4
 05C8 9301              movw R18,R6
 05CA 0E940000          xcall lsl32
 05CE F701              movw R30,R14
 05D0 42A0              ldd R4,z+34
 05D2 5524              clr R5
 05D4 6624              clr R6
 05D6 7724              clr R7
 05D8 3201              movw R6,R4
 05DA 4424              clr R4
 05DC 5524              clr R5
 05DE 400E              add R4,R16
 05E0 511E              adc R5,R17
 05E2 621E              adc R6,R18
 05E4 731E              adc R7,R19
 05E6 F101              movw R30,R2
 05E8 4081              ldd R20,z+0
 05EA 5181              ldd R21,z+1
 05EC 6281              ldd R22,z+2
 05EE 7381              ldd R23,z+3
 05F0 4429              or R20,R4
 05F2 5529              or R21,R5
 05F4 6629              or R22,R6
 05F6 7729              or R23,R7
 05F8 4083              std z+0,R20
 05FA 5183              std z+1,R21
 05FC 6283              std z+2,R22
 05FE 7383              std z+3,R23
 0600           ;                 }
 0600           L69:
 0600           ; 		#if FS_DEBUG_EN
 0600           ; 		#if USART1_EN
 0600           ; 	        {
 0600           ; 	            Uart1_SendString("\n 7.SecPerDisk:");//逻辑盘(卷)占扇区数
 0600 00E0              ldi R16,<L73
 0602 10E0              ldi R17,>L73
 0604 0E940000          xcall _Uart1_SendString
 0608           ;                   PUT_INT32U_DecTOString(DiskInfo[i].SecPerDisk);
 0608 8EE2              ldi R24,46
 060A 8A9D              mul R24,R10
 060C F001              movw R30,R0
 060E 80E0              ldi R24,<_DiskInfo+12
 0610 90E0              ldi R25,>_DiskInfo+12
 0612 E80F              add R30,R24
 0614 F91F              adc R31,R25
 0616 0081              ldd R16,z+0
 0618 1181              ldd R17,z+1
 061A 2281              ldd R18,z+2
 061C 3381              ldd R19,z+3
 061E 0E940000          xcall _PUT_INT32U_DecTOString
 0622           ;               }
 0622           ;               #endif
 0622           ;               #endif
 0622           ;               
 0622           ;                 DiskInfo[i].PathClusIndex=0 ;/* 当前目录为根目录 */
 0622 8EE2              ldi R24,46
 0624 8A9D              mul R24,R10
 0626 F001              movw R30,R0
 0628 80E0              ldi R24,<_DiskInfo+36
 062A 90E0              ldi R25,>_DiskInfo+36
 062C E80F              add R30,R24
 062E F91F              adc R31,R25
 0630 40E0              ldi R20,0
 0632 50E0              ldi R21,0
 0634 60E0              ldi R22,0
 0636 70E0              ldi R23,0
 0638 4083              std z+0,R20
 063A 5183              std z+1,R21
 063C 6283              std z+2,R22
 063E 7383              std z+3,R23
 0640           ;               
 0640           ;                 /* 根目录开始扇区号 */
 0640           ;                 DiskInfo[i].RootDirTable=DiskInfo[i].NumFATs*DiskInfo[i].FATSecCnt+DiskInfo[i].FATStartSec ;
 0640 8EE2              ldi R24,46
 0642 8A9D              mul R24,R10
 0644 1001              movw R2,R0
 0646 80E0              ldi R24,<_DiskInfo+8
 0648 90E0              ldi R25,>_DiskInfo+8
 064A F101              movw R30,R2
 064C E80F              add R30,R24
 064E F91F              adc R31,R25
 0650 4080              ldd R4,z+0
 0652 5180              ldd R5,z+1
 0654 6280              ldd R6,z+2
 0656 7380              ldd R7,z+3
 0658 80E0              ldi R24,<_DiskInfo+3
 065A 90E0              ldi R25,>_DiskInfo+3
 065C F101              movw R30,R2
 065E E80F              add R30,R24
 0660 F91F              adc R31,R25
 0662 4081              ldd R20,z+0
 0664 5527              clr R21
 0666 6627              clr R22
 0668 7727              clr R23
 066A 7A92              st -y,R7
 066C 6A92              st -y,R6
 066E 5A92              st -y,R5
 0670 4A92              st -y,R4
 0672 8A01              movw R16,R20
 0674 9B01              movw R18,R22
 0676 0E940000          xcall empy32u
 067A 2801              movw R4,R16
 067C 3901              movw R6,R18
 067E 80E0              ldi R24,<_DiskInfo+4
 0680 90E0              ldi R25,>_DiskInfo+4
 0682 F101              movw R30,R2
 0684 E80F              add R30,R24
 0686 F91F              adc R31,R25
 0688 4081              ldd R20,z+0
 068A 5181              ldd R21,z+1
 068C 6281              ldd R22,z+2
 068E 7381              ldd R23,z+3
 0690 440E              add R4,R20
 0692 551E              adc R5,R21
 0694 661E              adc R6,R22
 0696 771E              adc R7,R23
 0698 80E0              ldi R24,<_DiskInfo+20
 069A 90E0              ldi R25,>_DiskInfo+20
 069C F101              movw R30,R2
 069E E80F              add R30,R24
 06A0 F91F              adc R31,R25
 06A2 4082              std z+0,R4
 06A4 5182              std z+1,R5
 06A6 6282              std z+2,R6
 06A8 7382              std z+3,R7
 06AA           ;                 #if FS_DEBUG_EN
 06AA           ;               #if USART1_EN
 06AA           ;               {
 06AA           ;                   Uart1_SendString("\n 8.RootDirTable:");//根目录开始扇区号
 06AA 00E0              ldi R16,<L80
 06AC 10E0              ldi R17,>L80
 06AE 0E940000          xcall _Uart1_SendString
 06B2           ;                   PUT_INT32U_DecTOString(DiskInfo[i].RootDirTable);
 06B2 8EE2              ldi R24,46
 06B4 8A9D              mul R24,R10
 06B6 F001              movw R30,R0
 06B8 80E0              ldi R24,<_DiskInfo+20
 06BA 90E0              ldi R25,>_DiskInfo+20
 06BC E80F              add R30,R24
 06BE F91F              adc R31,R25
 06C0 0081              ldd R16,z+0
 06C2 1181              ldd R17,z+1
 06C4 2281              ldd R18,z+2
 06C6 3381              ldd R19,z+3
 06C8 0E940000          xcall _PUT_INT32U_DecTOString
 06CC           ;               }
 06CC           ;               #endif
 06CC           ;               #endif
 06CC           ;           
 06CC           ;               /* 数据区开始扇区号 */
 06CC           ;                 DiskInfo[i].DataStartSec=DiskInfo[i].RootDirTable+DiskInfo[i].RootSecCnt ;
 06CC 8EE2              ldi R24,46
 06CE 8A9D              mul R24,R10
 06D0 80E0              ldi R24,<_DiskInfo+24
 06D2 90E0              ldi R25,>_DiskInfo+24
 06D4 F001              movw R30,R0
 06D6 E80F              add R30,R24
 06D8 F91F              adc R31,R25
 06DA 2080              ldd R2,z+0
 06DC 3180              ldd R3,z+1
 06DE 4280              ldd R4,z+2
 06E0 5380              ldd R5,z+3
 06E2 80E0              ldi R24,<_DiskInfo+20
 06E4 90E0              ldi R25,>_DiskInfo+20
 06E6 F001              movw R30,R0
 06E8 E80F              add R30,R24
 06EA F91F              adc R31,R25
 06EC 6080              ldd R6,z+0
 06EE 7180              ldd R7,z+1
 06F0 8280              ldd R8,z+2
 06F2 9380              ldd R9,z+3
 06F4 620C              add R6,R2
 06F6 731C              adc R7,R3
 06F8 841C              adc R8,R4
 06FA 951C              adc R9,R5
 06FC 80E0              ldi R24,<_DiskInfo+28
 06FE 90E0              ldi R25,>_DiskInfo+28
 0700 F001              movw R30,R0
 0702 E80F              add R30,R24
 0704 F91F              adc R31,R25
 0706 6082              std z+0,R6
 0708 7182              std z+1,R7
 070A 8282              std z+2,R8
 070C 9382              std z+3,R9
 070E           ;                 #if FS_DEBUG_EN
 070E           ;               #if USART1_EN
 070E           ;               {
 070E           ;                   Uart1_SendString("\n 9.DataStartSec:");//数据区开始扇区号
 070E 00E0              ldi R16,<L85
 0710 10E0              ldi R17,>L85
 0712 0E940000          xcall _Uart1_SendString
 0716           ;                   PUT_INT32U_DecTOString(DiskInfo[i].DataStartSec);
 0716 8EE2              ldi R24,46
 0718 8A9D              mul R24,R10
 071A F001              movw R30,R0
 071C 80E0              ldi R24,<_DiskInfo+28
 071E 90E0              ldi R25,>_DiskInfo+28
 0720 E80F              add R30,R24
 0722 F91F              adc R31,R25
 0724 0081              ldd R16,z+0
 0726 1181              ldd R17,z+1
 0728 2281              ldd R18,z+2
 072A 3381              ldd R19,z+3
 072C 0E940000          xcall _PUT_INT32U_DecTOString
 0730           ;               }
 0730           ;               #endif
 0730           ;               #endif
 0730           ;           
 0730           ;               temp1=DiskInfo[i].SecPerDisk-DiskInfo[i].DataStartSec ;
 0730 8EE2              ldi R24,46
 0732 8A9D              mul R24,R10
 0734 80E0              ldi R24,<_DiskInfo+28
 0736 90E0              ldi R25,>_DiskInfo+28
 0738 F001              movw R30,R0
 073A E80F              add R30,R24
 073C F91F              adc R31,R25
 073E 2080              ldd R2,z+0
 0740 3180              ldd R3,z+1
 0742 4280              ldd R4,z+2
 0744 5380              ldd R5,z+3
 0746 80E0              ldi R24,<_DiskInfo+12
 0748 90E0              ldi R25,>_DiskInfo+12
 074A F001              movw R30,R0
 074C E80F              add R30,R24
 074E F91F              adc R31,R25
 0750 6080              ldd R6,z+0
 0752 7180              ldd R7,z+1
 0754 8280              ldd R8,z+2
 0756 9380              ldd R9,z+3
 0758 6218              sub R6,R2
 075A 7308              sbc R7,R3
 075C 8408              sbc R8,R4
 075E 9508              sbc R9,R5
 0760 FE01              movw R30,R28
 0762 6282              std z+2,R6
 0764 7382              std z+3,R7
 0766 8482              std z+4,R8
 0768 9582              std z+5,R9
 076A           ;                 temp1=temp1/DiskInfo[i].SecPerClus ;
 076A 8EE2              ldi R24,46
 076C 8A9D              mul R24,R10

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?