📄 fat.lst
字号:
1132 0622 0895 ret
1133 .LFE23:
1135 .global SearchFolder
1137 SearchFolder:
1138 .LFB21:
1139 .LM116:
1140 .LVL81:
1141 0624 2F92 push r2
1142 0626 3F92 push r3
1143 0628 4F92 push r4
1144 062a 5F92 push r5
1145 062c 7F92 push r7
1146 062e 8F92 push r8
1147 0630 9F92 push r9
1148 0632 AF92 push r10
1149 0634 BF92 push r11
1150 0636 CF92 push r12
1151 0638 DF92 push r13
1152 063a EF92 push r14
1153 063c FF92 push r15
1154 063e 0F93 push r16
1155 0640 1F93 push r17
1156 0642 CF93 push r28
1157 0644 DF93 push r29
1158 /* prologue: function */
1159 /* frame size = 0 */
1160 0646 2A01 movw r4,r20
1161 .LM117:
1162 0648 6115 cp r22,__zero_reg__
1163 064a 7105 cpc r23,__zero_reg__
1164 064c 8105 cpc r24,__zero_reg__
1165 064e 9105 cpc r25,__zero_reg__
1166 0650 01F0 breq .+2
1167 0652 00C0 rjmp .L71
1168 .LVL82:
1169 0654 8091 0000 lds r24,FAT32_Enable
1170 0658 8823 tst r24
1171 065a 01F0 breq .L72
1172 065c CC24 clr r12
1173 065e DD24 clr r13
1174 0660 7601 movw r14,r12
1175 .LVL83:
1176 0662 00C0 rjmp .L92
1177 .LVL84:
1178 .L72:
1179 .LM118:
1180 0664 80E0 ldi r24,lo8(512)
1181 0666 92E0 ldi r25,hi8(512)
1182 0668 0E94 0000 call malloc
1183 .LVL85:
1184 066c 7C01 movw r14,r24
1185 .LM119:
1186 066e 0097 sbiw r24,0
1187 0670 01F4 brne .+2
1188 0672 00C0 rjmp .L74
1189 0674 DD24 clr r13
1190 .LVL86:
1191 .LM120:
1192 0676 A12C mov r10,__zero_reg__
1193 0678 F2E0 ldi r31,hi8(512)
1194 067a BF2E mov r11,r31
1195 067c A80E add r10,r24
1196 067e B91E adc r11,r25
1197 0680 00C0 rjmp .L75
1198 .L81:
1199 .LM121:
1200 0682 8091 0000 lds r24,FirstDirSector
1201 0686 9091 0000 lds r25,(FirstDirSector)+1
1202 068a A091 0000 lds r26,(FirstDirSector)+2
1203 068e B091 0000 lds r27,(FirstDirSector)+3
1204 0692 080F add r16,r24
1205 0694 191F adc r17,r25
1206 0696 2A1F adc r18,r26
1207 0698 3B1F adc r19,r27
1208 069a E091 0000 lds r30,FAT_ReadSector
1209 069e F091 0000 lds r31,(FAT_ReadSector)+1
1210 06a2 A701 movw r20,r14
1211 .LVL87:
1212 06a4 C901 movw r24,r18
1213 06a6 B801 movw r22,r16
1214 06a8 0995 icall
1215 .LVL88:
1216 06aa 8823 tst r24
1217 06ac 01F0 breq .L76
1218 06ae C701 movw r24,r14
1219 .LVL89:
1220 06b0 00C0 rjmp .L93
1221 .LVL90:
1222 .L76:
1223 06b2 E701 movw r28,r14
1224 .L80:
1225 .LM122:
1226 06b4 8881 ld r24,Y
1227 06b6 8E32 cpi r24,lo8(46)
1228 06b8 01F0 breq .L78
1229 06ba 8823 tst r24
1230 06bc 01F0 breq .L78
1231 06be 853E cpi r24,lo8(-27)
1232 06c0 01F0 breq .L78
1233 .LM123:
1234 06c2 8B85 ldd r24,Y+11
1235 06c4 84FF sbrs r24,4
1236 06c6 00C0 rjmp .L78
1237 .LM124:
1238 06c8 F201 movw r30,r4
1239 06ca 2081 ld r18,Z
1240 06cc 3181 ldd r19,Z+1
1241 06ce F2E0 ldi r31,hi8(512)
1242 06d0 2030 cpi r18,lo8(512)
1243 06d2 3F07 cpc r19,r31
1244 06d4 01F4 brne .+2
1245 06d6 00C0 rjmp .L79
1246 .LM125:
1247 06d8 4C89 ldd r20,Y+20
1248 06da 5D89 ldd r21,Y+21
1249 06dc 60E0 ldi r22,lo8(0)
1250 06de 70E0 ldi r23,hi8(0)
1251 06e0 BA01 movw r22,r20
1252 06e2 5527 clr r21
1253 06e4 4427 clr r20
1254 06e6 8A8D ldd r24,Y+26
1255 06e8 9B8D ldd r25,Y+27
1256 06ea A0E0 ldi r26,lo8(0)
1257 06ec B0E0 ldi r27,hi8(0)
1258 06ee 480F add r20,r24
1259 06f0 591F adc r21,r25
1260 06f2 6A1F adc r22,r26
1261 06f4 7B1F adc r23,r27
1262 06f6 C901 movw r24,r18
1263 06f8 0E94 0000 call WriteFolderCluster
1264 .LM126:
1265 06fc F201 movw r30,r4
1266 06fe 8081 ld r24,Z
1267 0700 9181 ldd r25,Z+1
1268 0702 0496 adiw r24,4
1269 0704 9183 std Z+1,r25
1270 0706 8083 st Z,r24
1271 .L78:
1272 0708 A096 adiw r28,32
1273 .LM127:
1274 070a CA15 cp r28,r10
1275 070c DB05 cpc r29,r11
1276 070e 01F4 brne .L80
1277 .LM128:
1278 0710 D394 inc r13
1279 .L75:
1280 0712 0D2D mov r16,r13
1281 0714 10E0 ldi r17,lo8(0)
1282 0716 20E0 ldi r18,lo8(0)
1283 0718 30E0 ldi r19,hi8(0)
1284 071a 8091 0000 lds r24,RootDirSectors
1285 071e 9091 0000 lds r25,(RootDirSectors)+1
1286 0722 A091 0000 lds r26,(RootDirSectors)+2
1287 0726 B091 0000 lds r27,(RootDirSectors)+3
1288 072a 0817 cp r16,r24
1289 072c 1907 cpc r17,r25
1290 072e 2A07 cpc r18,r26
1291 0730 3B07 cpc r19,r27
1292 0732 00F4 brsh .+2
1293 0734 00C0 rjmp .L81
1294 .LM129:
1295 0736 C701 movw r24,r14
1296 .LVL91:
1297 0738 0E94 0000 call free
1298 .LVL92:
1299 073c 00C0 rjmp .L79
1300 .LVL93:
1301 .L71:
1302 .LM130:
1303 073e 6B01 movw r12,r22
1304 0740 7C01 movw r14,r24
1305 .LVL94:
1306 .L92:
1307 .LM131:
1308 0742 C701 movw r24,r14
1309 0744 B601 movw r22,r12
1310 .LVL95:
1311 0746 6250 subi r22,lo8(-(-2))
1312 0748 7040 sbci r23,hi8(-(-2))
1313 074a 8040 sbci r24,hlo8(-(-2))
1314 074c 9040 sbci r25,hhi8(-(-2))
1315 074e 2091 0000 lds r18,SectorsPerClust
1316 0752 3091 0000 lds r19,(SectorsPerClust)+1
1317 0756 40E0 ldi r20,lo8(0)
1318 0758 50E0 ldi r21,hi8(0)
1319 075a 0E94 0000 call __mulsi3
1320 075e 4B01 movw r8,r22
1321 0760 5C01 movw r10,r24
1322 0762 8091 0000 lds r24,FirstDataSector
1323 0766 9091 0000 lds r25,(FirstDataSector)+1
1324 076a A091 0000 lds r26,(FirstDataSector)+2
1325 076e B091 0000 lds r27,(FirstDataSector)+3
1326 0772 880E add r8,r24
1327 0774 991E adc r9,r25
1328 0776 AA1E adc r10,r26
1329 0778 BB1E adc r11,r27
1330 .LM132:
1331 077a 80E0 ldi r24,lo8(512)
1332 077c 92E0 ldi r25,hi8(512)
1333 077e 0E94 0000 call malloc
1334 0782 8C01 movw r16,r24
1335 .LM133:
1336 0784 0097 sbiw r24,0
1337 0786 01F4 brne .+2
1338 0788 00C0 rjmp .L74
1339 078a 7724 clr r7
1340 .LM134:
1341 078c 212C mov r2,__zero_reg__
1342 078e 92E0 ldi r25,hi8(512)
1343 0790 392E mov r3,r25
1344 0792 200E add r2,r16
1345 0794 311E adc r3,r17
1346 0796 00C0 rjmp .L82
1347 .LVL96:
1348 .L86:
1349 .LM135:
1350 0798 C501 movw r24,r10
1351 079a B401 movw r22,r8
1352 079c 670D add r22,r7
1353 079e 711D adc r23,__zero_reg__
1354 07a0 811D adc r24,__zero_reg__
1355 07a2 911D adc r25,__zero_reg__
1356 07a4 E091 0000 lds r30,FAT_ReadSector
1357 07a8 F091 0000 lds r31,(FAT_ReadSector)+1
1358 07ac A801 movw r20,r16
1359 .LVL97:
1360 07ae 0995 icall
1361 .LVL98:
1362 07b0 8823 tst r24
1363 07b2 01F0 breq .L83
1364 07b4 C801 movw r24,r16
1365 .LVL99:
1366 .L93:
1367 07b6 0E94 0000 call free
1368 .LVL100:
1369 07ba 00C0 rjmp .L74
1370 .LVL101:
1371 .L83:
1372 07bc E801 movw r28,r16
1373 .L85:
1374 .LM136:
1375 07be 8881 ld r24,Y
1376 07c0 8E32 cpi r24,lo8(46)
1377 07c2 01F0 breq .L84
1378 07c4 8823 tst r24
1379 07c6 01F0 breq .L84
1380 07c8 853E cpi r24,lo8(-27)
1381 07ca 01F0 breq .L84
1382 .LM137:
1383 07cc 8B85 ldd r24,Y+11
1384 07ce 84FF sbrs r24,4
1385 07d0 00C0 rjmp .L84
1386 .LM138:
1387 07d2 F201 movw r30,r4
1388 07d4 2081 ld r18,Z
1389 07d6 3181 ldd r19,Z+1
1390 07d8 F2E0 ldi r31,hi8(512)
1391 07da 2030 cpi r18,lo8(512)
1392 07dc 3F07 cpc r19,r31
1393 07de 01F4 brne .+2
1394 07e0 00C0 rjmp .L79
1395 .LM139:
1396 07e2 4C89 ldd r20,Y+20
1397 07e4 5D89 ldd r21,Y+21
1398 07e6 60E0 ldi r22,lo8(0)
1399 07e8 70E0 ldi r23,hi8(0)
1400 07ea BA01 movw r22,r20
1401 07ec 5527 clr r21
1402 07ee 4427 clr r20
1403 07f0 8A8D ldd r24,Y+26
1404 07f2 9B8D ldd r25,Y+27
1405 07f4 A0E0 ldi r26,lo8(0)
1406 07f6 B0E0 ldi r27,hi8(0)
1407 07f8 480F add r20,r24
1408 07fa 591F adc r21,r25
1409 07fc 6A1F adc r22,r26
1410 07fe 7B1F adc r23,r27
1411 0800 C901 movw r24,r18
1412 0802 0E94 0000 call WriteFolderCluster
1413 .LM140:
1414 0806 F201 movw r30,r4
1415 0808 8081 ld r24,Z
1416 080a 9181 ldd r25,Z+1
1417 080c 0496 adiw r24,4
1418 080e 9183 std Z+1,r25
1419 0810 8083 st Z,r24
1420 .L84:
1421 0812 A096 adiw r28,32
1422 .LM141:
1423 0814 C215 cp r28,r2
1424 0816 D305 cpc r29,r3
1425 0818 01F4 brne .L85
1426 .LM142:
1427 081a 7394 inc r7
1428 .L82:
1429 081c 272D mov r18,r7
1430 081e 30E0 ldi r19,lo8(0)
1431 .LVL102:
1432 0820 8091 0000 lds r24,SectorsPerClust
1433 0824 9091 0000 lds r25,(SectorsPerClust)+1
1434 0828 2817 cp r18,r24
1435 082a 3907 cpc r19,r25
1436 082c 00F4 brsh .+2
1437 082e 00C0 rjmp .L86
1438 .LVL103:
1439 .LM143:
1440 0830 C801 movw r24,r16
1441 .LVL104:
1442 0832 0E94 0000 call free
1443 .LVL105:
1444 .LM144:
1445 0836 C701 movw r24,r14
1446 0838 B601 movw r22,r12
1447 083a 0E94 0000 call FAT_NextCluster
1448 083e 6B01 movw r12,r22
1449 0840 7C01 movw r14,r24
1450 .LM145:
1451 0842 6F3F cpi r22,lo8(268435455)
1452 0844 FFEF ldi r31,hi8(268435455)
1453 0846 7F07 cpc r23,r31
1454 0848 FFEF ldi r31,hlo8(268435455)
1455 084a 8F07 cpc r24,r31
1456 084c FFE0 ldi r31,hhi8(268435455)
1457 084e 9F07 cpc r25,r31
1458 0850 01F0 breq .L79
1459 .LVL106:
1460 0852 88EF ldi r24,lo8(268435448)
1461 0854 C816 cp r12,r24
1462 0856 8FEF ldi r24,hi8(268435448)
1463 0858 D806 cpc r13,r24
1464 085a 8FEF ldi r24,hlo8(268435448)
1465 085c E806 cpc r14,r24
1466 085e 8FE0 ldi r24,hhi8(268435448)
1467 0860 F806 cpc r15,r24
1468 0862 01F0 breq .L79
1469 .LVL107:
1470 0864 8091 0000 lds r24,FAT32_Enable
1471 0868 8823 tst r24
1472 086a 01F0 breq .+2
1473 086c 00C0 rjmp .L92
1474 086e EFEF ldi r30,lo8(65535)
1475 0870 CE16 cp r12,r30
1476 0872 EFEF ldi r30,hi8(65535)
1477 0874 DE06 cpc r13,r30
1478 0876 E0E0 ldi r30,hlo8(65535)
1479 0878 EE06 cpc r14,r30
1480 087a E0E0 ldi r30,hhi8(65535)
1481 087c FE06 cpc r15,r30
1482 087e 01F0 breq .+2
1483 0880 00C0 rjmp .L92
1484 0882 00C0 rjmp .L79
1485 .LVL108:
1486 .L74:
1487 0884 81E0 ldi r24,lo8(1)
1488 0886 00C0 rjmp .L77
1489 .LVL109:
1490 .L79:
1491 0888 80E0 ldi r24,lo8(0)
1492 .L77:
1493 /* epilogue start */
1494 .LM146:
1495 088a DF91 pop r29
1496 088c CF91 pop r28
1497 088e 1F91 pop r17
1498 0890 0F91 pop r16
1499 0892 FF90 pop r15
1500 0894 EF90 pop r14
1501 0896 DF90 pop r13
1502 0898 CF90 pop r12
1503 .LVL110:
1504 089a BF90 pop r11
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -