📄 demo.s90
字号:
RJMP ??scan_directory_16
CLR R14
CLR R15
RJMP ??scan_directory_17
??scan_directory_18:
MOVW R31 : R30,R11 : R10
LD R16,Z
CPI R16,229
BREQ $+2+2
RJMP ??scan_directory_19
MOVW R31 : R30,R7 : R6
LD R16,Z
LDD R17,Z+1
LDD R18,Z+2
MOVW R1 : R0,R9 : R8
CLR R2
ADD R0,R16
ADC R1,R17
ADC R2,R18
MOV R3,R2
MOV R2,R1
MOV R1,R0
CLR R0
LSL R1
ROL R2
ROL R3
MOVW R17 : R16,R15 : R14
MOVW R19 : R18,R17 : R16
LDI R20,5
MOVW R17 : R16,R19 : R18
CALL ?S_SHL_L02
MOVW R25 : R24,R17 : R16
LDI R26,0
LDI R27,0
ADD R24,R0
ADC R25,R1
ADC R26,R2
ADC R27,R3
LD R16,Y
ORI R16,0x10
ST Y,R16
??scan_directory_20:
LDD R16,Y+1
LDD R17,Y+2
SUBI R16,255
SBCI R17,255
STD Y+1,R16
STD Y+2,R17
LDI R16,1
ADD R14,R16
LDI R16,0
ADC R15,R16
??scan_directory_17:
LDI R16,16
CP R14,R16
LDI R16,0
CPC R15,R16
BRCS $+2+2
RJMP ??scan_directory_21
LDI R18,LOW(_FF_buff)
LDI R19,(_FF_buff) >> 8
MOVW R17 : R16,R15 : R14
MOVW R23 : R22,R17 : R16
LDI R20,5
MOVW R17 : R16,R23 : R22
CALL ?S_SHL_L02
MOVW R11 : R10,R19 : R18
ADD R10,R16
ADC R11,R17
MOVW R5 : R4,R29 : R28
LDI R16,5
ADD R4,R16
LDI R16,0
ADC R5,R16
MOVW R31 : R30,R11 : R10
LD R16,Z
TST R16
BREQ $+2+2
RJMP ??scan_directory_18
LD R16,Y
SBRC R16,4
RJMP ??scan_directory_22
MOVW R31 : R30,R7 : R6
LD R16,Z
LDD R17,Z+1
LDD R18,Z+2
CLR R10
ADD R8,R16
ADC R9,R17
ADC R10,R18
MOV R11,R10
MOV R10,R9
MOV R9,R8
CLR R8
LSL R9
ROL R10
ROL R11
MOVW R17 : R16,R15 : R14
LDI R20,5
CALL ?S_SHL_L02
MOVW R25 : R24,R17 : R16
LDI R26,0
LDI R27,0
ADD R24,R8
ADC R25,R9
ADC R26,R10
ADC R27,R11
??scan_directory_22:
MOVW R31 : R30,R7 : R6
ST Z,R24
STD Z+1,R25
STD Z+2,R26
STD Z+3,R27
LDI R16,0
LDI R17,0
RJMP ??scan_directory_10
??scan_directory_19:
LD R16,Y
SBRS R16,0
RJMP ??scan_directory_23
LDI R20,11
LDI R21,0
MOVW R19 : R18,R11 : R10
MOVW R17 : R16,R5 : R4
RCALL _FF_strncmp
OR R16,R17
BREQ $+2+2
RJMP ??scan_directory_20
MOVW R31 : R30,R7 : R6
LD R16,Z
LDD R17,Z+1
LDD R18,Z+2
CLR R10
ADD R8,R16
ADC R9,R17
ADC R10,R18
MOV R11,R10
MOV R10,R9
MOV R9,R8
CLR R8
LSL R9
ROL R10
ROL R11
MOVW R17 : R16,R15 : R14
LDI R20,5
CALL ?S_SHL_L02
MOVW R25 : R24,R17 : R16
LDI R26,0
LDI R27,0
ADD R24,R8
ADC R25,R9
ADC R26,R10
ADC R27,R11
MOVW R31 : R30,R7 : R6
ST Z,R24
STD Z+1,R25
STD Z+2,R26
STD Z+3,R27
LDI R16,255
LDI R17,255
RJMP ??scan_directory_10
??scan_directory_23:
LDI R20,11
LDI R21,0
MOVW R19 : R18,R11 : R10
MOVW R17 : R16,R5 : R4
RCALL _FF_strncmp
OR R16,R17
BREQ $+2+2
RJMP ??scan_directory_20
MOVW R31 : R30,R11 : R10
LDD R16,Z+11
SBRS R16,4
RJMP ??scan_directory_20
MOVW R31 : R30,R7 : R6
LD R16,Z
LDD R17,Z+1
LDD R18,Z+2
CLR R10
ADD R8,R16
ADC R9,R17
ADC R10,R18
MOV R11,R10
MOV R10,R9
MOV R9,R8
CLR R8
LSL R9
ROL R10
ROL R11
MOVW R17 : R16,R15 : R14
LDI R20,5
CALL ?S_SHL_L02
MOVW R25 : R24,R17 : R16
LDI R26,0
LDI R27,0
ADD R24,R8
ADC R25,R9
ADC R26,R10
ADC R27,R11
MOVW R31 : R30,R7 : R6
ST Z,R24
STD Z+1,R25
STD Z+2,R26
STD Z+3,R27
LDI R16,255
LDI R17,255
RJMP ??scan_directory_10
??scan_directory_21:
LDI R16,1
ADD R8,R16
LDI R16,0
ADC R9,R16
LDD R16,Y+1
LDD R17,Y+2
CP R16,R12
CPC R17,R13
BREQ $+2+2
RJMP ??scan_directory_14
LD R16,Y
SBRS R16,7
RJMP ??scan_directory_14
LDI R18,2
LDD R16,Y+3
LDD R17,Y+4
RCALL next_cluster
MOVW R9 : R8,R17 : R16
LDI R16,255
CP R8,R16
LDI R16,255
CPC R9,R16
BREQ $+2+2
RJMP ??scan_directory_15
LD R16,Y
SBRC R16,4
RJMP ??scan_directory_16
LDI R30,LOW(_FF_ROOT_ADDR)
LDI R31,(_FF_ROOT_ADDR) >> 8
LD R16,Z
LDD R17,Z+1
LDD R18,Z+2
LDD R19,Z+3
MOVW R31 : R30,R7 : R6
LD R20,Z
LDD R21,Z+1
LDD R22,Z+2
LDD R23,Z+3
CP R16,R20
CPC R17,R21
CPC R18,R22
CPC R19,R23
BRCS $+2+2
RJMP ??scan_directory_14
LDI R16,0
LDI R17,0
LDI R18,0
LDI R19,0
MOVW R31 : R30,R7 : R6
ST Z,R16
STD Z+1,R17
STD Z+2,R18
STD Z+3,R19
LDD R16,Y+3
LDD R17,Y+4
RJMP ??scan_directory_10
??scan_directory_16:
LD R16,Y
SBRS R16,4
RJMP ??scan_directory_24
MOVW R31 : R30,R7 : R6
ST Z,R24
STD Z+1,R25
STD Z+2,R26
STD Z+3,R27
LDI R16,0
LDI R17,0
RJMP ??scan_directory_10
??scan_directory_24:
LDI R16,0
LDI R17,0
LDI R18,0
LDI R19,0
MOVW R31 : R30,R7 : R6
ST Z,R16
STD Z+1,R17
STD Z+2,R18
STD Z+3,R19
LDI R16,255
LDI R17,255
??scan_directory_10:
ADIW R29 : R28,19
LDI R30,16
JMP ?EPILOGUE_B16_L09
RSEG FAR_F:CODE:NOROOT(0)
// char __farflash __CR
__CR:
DB 13
RSEG FAR_F:CODE:NOROOT(0)
// char __farflash __LF
__LF:
DB 10
RSEG FAR_F:CODE:NOROOT(0)
// char __farflash __Tab
__Tab:
DB 9
RSEG FAR_F:CODE:NOROOT(0)
// char __farflash __OpenBracket
__OpenBracket:
DB 91
RSEG FAR_F:CODE:NOROOT(0)
// char __farflash __Period
__Period:
DB 46
RSEG FAR_F:CODE:NOROOT(0)
// char __farflash FileList_str[27]
FileList_str:
DB "\015\012File Listing for: ROOT\\"
RSEG FAR_F:CODE:NOROOT(0)
// char __farflash SC_str[7]
SC_str:
DB "] (%X)"
RSEG FAR_F:CODE:NOROOT(0)
// char __farflash Entry_str[19]
Entry_str:
DB " [%ld] bytes (%X) "
RSEG CODE:CODE:NOROOT(1)
// __nearfunc void read_directory()
read_directory:
CALL ?PROLOGUE16_L09
REQUIRE ?Register_R4_is_cg_reg
REQUIRE ?Register_R5_is_cg_reg
REQUIRE ?Register_R6_is_cg_reg
REQUIRE ?Register_R7_is_cg_reg
REQUIRE ?Register_R8_is_cg_reg
REQUIRE ?Register_R9_is_cg_reg
REQUIRE ?Register_R10_is_cg_reg
REQUIRE ?Register_R11_is_cg_reg
REQUIRE ?Register_R12_is_cg_reg
REQUIRE ?Register_R14_is_cg_reg
REQUIRE ?Register_R15_is_cg_reg
SBIW R29 : R28,6
LDI R30,LOW(_FF_DIR_ADDR)
LDI R31,(_FF_DIR_ADDR) >> 8
LD R16,Z
LDD R17,Z+1
LDD R18,Z+2
LDD R19,Z+3
LDI R30,LOW(_FF_ROOT_ADDR)
LDI R31,(_FF_ROOT_ADDR) >> 8
LD R20,Z
LDD R21,Z+1
LDD R22,Z+2
LDD R23,Z+3
CP R16,R20
CPC R17,R21
CPC R18,R22
CPC R19,R23
BREQ ??read_directory_0
LDI R30,LOW(_FF_DIR_ADDR)
LDI R31,(_FF_DIR_ADDR) >> 8
LD R16,Z
LDD R17,Z+1
LDD R18,Z+2
LDD R19,Z+3
RCALL addr_to_clust
MOVW R15 : R14,R17 : R16
MOV R16,R14
OR R16,R15
BRNE $+2+2
RJMP ??read_directory_1
??read_directory_0:
LDI R16,LOW(FileList_str)
LDI R17,HIGH(FileList_str)
LDI R18,(FileList_str) >> 16
CALL printf_P
LDI R26,0
LDI R27,0
RJMP ??read_directory_2
??read_directory_3:
MOVW R31 : R30,R27 : R26
SUBI R30,LOW((-(_FF_FULL_PATH) & 0xFFFF))
SBCI R31,(-(_FF_FULL_PATH) & 0xFFFF) >> 8
LD R16,Z
LDI R17,0
RCALL putchar
ADIW R27 : R26,1
??read_directory_2:
CPI R26,50
LDI R16,0
CPC R27,R16
BRCC ??read_directory_4
MOVW R31 : R30,R27 : R26
SUBI R30,LOW((-(_FF_FULL_PATH) & 0xFFFF))
SBCI R31,(-(_FF_FULL_PATH) & 0xFFFF) >> 8
LD R16,Z
TST R16
BRNE ??read_directory_3
??read_directory_4:
LDI R30,LOW(_FF_DIR_ADDR)
LDI R31,(_FF_DIR_ADDR) >> 8
LD R4,Z
LDD R5,Z+1
LDD R6,Z+2
LDD R7,Z+3
LDI R26,0
LDI R27,0
CLR R8
CLR R9
RJMP ??read_directory_5
??read_directory_6:
MOVW R17 : R16,R9 : R8
RCALL clust_to_addr
MOVW R5 : R4,R17 : R16
MOVW R7 : R6,R19 : R18
MOVW R15 : R14,R9 : R8
LDI R26,0
LDI R27,0
CLR R8
CLR R9
??read_directory_5:
LDI R30,LOW(BPB_RootEntCnt)
LDI R31,(BPB_RootEntCnt) >> 8
LD R16,Z
LDD R17,Z+1
CP R26,R16
CPC R27,R17
BRCS $+2+2
RJMP ??read_directory_7
LDI R20,LOW(_FF_buff)
LDI R21,(_FF_buff) >> 8
MOVW R17 : R16,R9 : R8
LDI R18,0
LDI R19,0
ADD R16,R4
ADC R17,R5
ADC R18,R6
ADC R19,R7
RCALL _FF_read
TST R16
BRNE $+2+2
RJMP ??read_directory_7
CLR R10
CLR R11
RJMP ??read_directory_8
??read_directory_9:
LD R16,Y
LDD R17,Y+1
MOVW R31 : R30,R17 : R16
SUBI R30,LOW((-(_FF_buff) & 0xFFFF))
SBCI R31,(-(_FF_buff) & 0xFFFF) >> 8
LD R16,Z
LDI R17,0
RCALL putchar
ADIW R25 : R24,1
??read_directory_10:
CPI R24,11
LDI R16,0
CPC R25,R16
BRCC ??read_directory_11
MOVW R17 : R16,R11 : R10
MOVW R19 : R18,R17 : R16
LDI R20,5
MOVW R17 : R16,R19 : R18
CALL ?S_SHL_L02
ADD R16,R24
ADC R17,R25
ST Y,R16
STD Y+1,R17
LD R16,Y
LDD R17,Y+1
MOVW R31 : R30,R17 : R16
SUBI R30,LOW((-(_FF_buff) & 0xFFFF))
SBCI R31,(-(_FF_buff) & 0xFFFF) >> 8
LD R16,Z
CPI R16,32
BRNE ??read_directory_9
??read_directory_11:
MOVW R17 : R16,R11 : R10
MOVW R19 : R18,R17 : R16
LDI R20,5
MOVW R17 : R16,R19 : R18
CALL ?S_SHL_L02
MOVW R25 : R24,R17 : R16
MOVW R17 : R16,R25 : R24
SUBI R16,225
SBCI R17,255
MOVW R31 : R30,R17 : R16
SUBI R30,LOW((-(_FF_buff) & 0xFFFF))
SBCI R31,(-(_FF_buff) & 0xFFFF) >> 8
LD R16,Z
STD Y+3,R16
MOVW R17 : R16,R25 : R24
SUBI R16,226
SBCI R17,255
MOVW R31 : R30,R17 : R16
SUBI R30,LOW((-(_FF_buff) & 0xFFFF))
SBCI R31,(-(_FF_buff) & 0xFFFF) >> 8
LD R16,Z
STD Y+2,R16
MOVW R17 : R16,R25 : R24
SUBI R16,227
SBCI R17,255
MOVW R31 : R30,R17 : R16
SUBI R30,LOW((-(_FF_buff) & 0xFFFF))
SBCI R31,(-(_FF_buff) & 0xFFFF) >> 8
LD R16,Z
STD Y+1,R16
MOVW R17 : R16,R25 : R24
SUBI R16,228
SBCI R17,255
MOVW R31 : R30,R17 : R16
SUBI R30,LOW((-(_FF_buff) & 0xFFFF))
SBCI R31,(-(_FF_buff) & 0xFFFF) >> 8
LD R16,Z
ST Y,R16
MOVW R17 : R16,R25 : R24
SUBI R16,229
SBCI R17,255
MOVW R31 : R30,R17 : R16
SUBI R30,LOW((-(_FF_buff) & 0xFFFF))
SBCI R31,(-(_FF_buff) & 0xFFFF) >> 8
LD R16,Z
STD Y+5,R16
ADIW R25 : R24,26
MOVW R31 : R30,R25 : R24
SUBI R30,LOW((-(_FF_buff) & 0xFFFF))
SBCI R31,(-(_FF_buff) & 0xFFFF) >> 8
LD R16,Z
STD Y+4,R16
LDD R16,Y+4
LDD R17,Y+5
ST -Y,R17
ST -Y,R16
LDD R16,Y+2
LDD R17,Y+3
LDD R18,Y+4
LDD R19,Y+5
ST -Y,R19
ST -Y,R18
ST -Y,R17
ST -Y,R16
LDI R16,LOW(Entry_str)
LDI R17,HIGH(Entry_str)
LDI R18,(Entry_str) >> 16
CALL printf_P
ADIW R29 : R28,6
??read_directory_12:
ADIW R27 : R26,1
LDI R16,1
ADD R10,R16
LDI R16,0
ADC R11,R16
??read_directory_8:
LDI R16,16
CP R10,R16
LDI R16,0
CPC R11,R16
BRCS $+2+2
RJMP ??read_directory_13
CLR R12
INC R12
LDI R24,0
LDI R25,0
RJMP ??read_directory_14
??read_directory_15:
CLR R12
INC R12
MOVW R17 : R16,R11 : R10
MOVW R19 : R18,R17 : R16
LDI R20,5
MOVW R17 : R16,R19 : R18
CALL ?S_SHL_L02
ADD R16,R24
ADC R17,R25
MOVW R31 : R30,R17 : R16
SUBI R30,LOW((-(_FF_buff) & 0xFFFF))
SBCI R31,(-(_FF_buff) & 0xFFFF) >> 8
LD R16,Z
RCALL valid_file_char
OR R16,R17
BREQ ??read_directory_16
CLR R12
??read_directory_16:
ADIW R25 : R24,1
??read_directory_14:
CPI R24,11
LDI R16,0
CPC R25,R16
BRCC ??read_directory_17
TST R12
BREQ ??read_directory_17
MOVW R17 : R16,R11 : R10
MOVW R19 : R18,R17 : R16
LDI R20,5
MOVW R17 : R16,R19 : R18
CALL ?S_SHL_L02
MOVW R31 : R30,R17 : R16
SUBI R30,LOW((-(_FF_buff) & 0xFFFF))
SBCI R31,(-(_FF_buff) & 0xFFFF) >> 8
LD R16,Z
TST R16
BRNE ??read_directory_15
LDI R16,16
MOV R10,R16
CLR R11
LDI R30,LOW(BPB_RootEntCnt)
LDI R31,(BPB_RootEntCnt) >> 8
LD R26,Z
LDD R27,Z+1
CLR R12
RJMP ??read_directory_16
??read_directory_17:
TST R12
BREQ ??read_directory_12
MOVW R17 : R16,R11 : R10
MOVW R19 : R18,R17 : R16
LDI R20,5
MOVW R17 : R16,R19 : R18
CALL ?S_SHL_L02
SUBI R16,245
SBCI R17,255
ST Y,R16
STD Y+1,R17
LD R16,Y
LDD R17,Y+1
MOVW R31 : R30,R17 : R16
SUBI R30,LOW((-(_FF_buff) & 0xFFFF))
SBCI R31,(-(_FF_buff) & 0xFFFF) >> 8
LD R12,Z
LDI R30,LOW(__CR)
LDI R31,HIGH(__CR)
LDI R19,(__CR) >> 16
OUT 0x3B,R19
ELPM R16,Z
LDI R17,0
RCALL putchar
LDI R30,LOW(__LF)
LDI R31,HIGH(__LF)
LDI R19,(__LF) >> 16
OUT 0x3B,R19
ELPM R16,Z
LDI R17,0
RCALL putchar
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -