?? file.lst
字號:
1064 04b0 BA8F std Y+26,r27
475:file.c ****
476:file.c **** fp->fFDT.FileSize++;
1066 .LM111:
1067 04b2 8E85 ldd r24,Y+14
1068 04b4 9F85 ldd r25,Y+15
1069 04b6 A889 ldd r26,Y+16
1070 04b8 B989 ldd r27,Y+17
1071 04ba 0196 adiw r24,1
1072 04bc A11D adc r26,__zero_reg__
1073 04be B11D adc r27,__zero_reg__
1074 04c0 8E87 std Y+14,r24
1075 04c2 9F87 std Y+15,r25
1076 04c4 A88B std Y+16,r26
1077 04c6 B98B std Y+17,r27
477:file.c ****
478:file.c **** /* 到達下一扇區 */
479:file.c **** if (++ByteOffset == 512)
1079 .LM112:
1080 04c8 8FEF ldi r24,lo8(511)
1081 04ca A816 cp r10,r24
1082 04cc 81E0 ldi r24,hi8(511)
1083 04ce B806 cpc r11,r24
1084 04d0 F9F4 brne .L73
480:file.c **** {
481:file.c **** /* 進入下一簇 */
482:file.c **** if (++SecOffset == FS_SecPerClus)
1086 .LM113:
1087 04d2 0894 sec
1088 04d4 E11C adc r14,__zero_reg__
1089 04d6 F11C adc r15,__zero_reg__
1090 04d8 011D adc r16,__zero_reg__
1091 04da 111D adc r17,__zero_reg__
1092 04dc 8091 0000 lds r24,FS_SecPerClus
1093 04e0 9927 clr r25
1094 04e2 AA27 clr r26
1095 04e4 BB27 clr r27
1096 04e6 E816 cp r14,r24
1097 04e8 F906 cpc r15,r25
1098 04ea 0A07 cpc r16,r26
1099 04ec 1B07 cpc r17,r27
1100 04ee 81F4 brne .L73
483:file.c **** {
484:file.c **** ClusIndex = GetNextClus(ClusIndex);
1102 .LM114:
1103 04f0 C601 movw r24,r12
1104 04f2 0E94 0000 call _Z11GetNextClusj
1105 04f6 6C01 movw r12,r24
485:file.c ****
486:file.c **** /* 當前簇是最后一簇嗎 */
487:file.c **** if (ClusIndex >= EOF_CLUS_1)
1107 .LM115:
1108 04f8 88EF ldi r24,lo8(-8)
1109 04fa C816 cp r12,r24
1110 04fc 8FEF ldi r24,hi8(-8)
1111 04fe D806 cpc r13,r24
1112 0500 28F0 brlo .L75
488:file.c **** {
489:file.c **** /* 增加一個簇 */
490:file.c **** ClusIndex = AddNewClus(fp->CurClus);
1114 .LM116:
1115 0502 8D89 ldd r24,Y+21
1116 0504 9E89 ldd r25,Y+22
1117 0506 0E94 0000 call _Z10AddNewClusj
1118 050a 6C01 movw r12,r24
1119 .L75:
491:file.c **** }
492:file.c **** /* 當前簇為下一簇 */
493:file.c **** fp->CurClus = ClusIndex;
1121 .LM117:
1122 050c CD8A std Y+21,r12
1123 050e DE8A std Y+22,r13
1124 .L73:
494:file.c **** }
495:file.c **** }
496:file.c ****
497:file.c **** return ch;
1126 .LM118:
1127 0510 892D mov r24,r9
1128 0512 9927 clr r25
1129 .L69:
1130 .LBE22:
1131 .LBE21:
1132 /* epilogue: frame size=0 */
1133 0514 DF91 pop r29
1134 0516 CF91 pop r28
1135 0518 1F91 pop r17
1136 051a 0F91 pop r16
1137 051c FF90 pop r15
1138 051e EF90 pop r14
1139 0520 DF90 pop r13
1140 0522 CF90 pop r12
1141 0524 BF90 pop r11
1142 0526 AF90 pop r10
1143 0528 9F90 pop r9
1144 052a 0895 ret
1145 /* epilogue end (size=12) */
1146 /* function uint8 PutchFile(FileManageInfo*, uint8) size 149 (126) */
1158 .global _Z10GetNchFileP14FileManageInfoPhm
1160 _Z10GetNchFileP14FileManageInfoPhm:
498:file.c **** }
499:file.c ****
500:file.c **** /*
501:file.c **** ;**************************************************************************************************
502:file.c **** ;* 函數名稱 : GetNchFile
503:file.c **** ;* 描 述 : 從文件讀取多個字節
504:file.c **** ;* 輸 入 : fp: 文件指針; str: 要寫入的地址; nbyte: 字節數
505:file.c **** ;*
506:file.c **** ;* 輸 出 : 無
507:file.c **** ;**************************************************************************************************
508:file.c **** ;*/
509:file.c **** void GetNchFile(M_FILE fp, uint8 *str, uint32 nbyte)
510:file.c **** {
1162 .LM119:
1163 /* prologue: frame size=0 */
1164 052c CF92 push r12
1165 052e DF92 push r13
1166 0530 EF92 push r14
1167 0532 FF92 push r15
1168 0534 0F93 push r16
1169 0536 1F93 push r17
1170 0538 CF93 push r28
1171 053a DF93 push r29
1172 /* prologue end (size=8) */
1173 053c 6C01 movw r12,r24
1174 053e EB01 movw r28,r22
1175 0540 7901 movw r14,r18
1176 0542 8A01 movw r16,r20
1177 .LBB23:
511:file.c **** while (nbyte-- > 0)
512:file.c **** {
513:file.c **** *str++ = GetchFile(fp);
1179 .LM120:
1180 0544 0894 sec
1181 0546 E108 sbc r14,__zero_reg__
1182 0548 F108 sbc r15,__zero_reg__
1183 054a 0109 sbc r16,__zero_reg__
1184 054c 1109 sbc r17,__zero_reg__
1185 054e 8FEF ldi r24,lo8(-1)
1186 0550 E816 cp r14,r24
1187 0552 8FEF ldi r24,hi8(-1)
1188 0554 F806 cpc r15,r24
1189 0556 8FEF ldi r24,hlo8(-1)
1190 0558 0807 cpc r16,r24
1191 055a 8FEF ldi r24,hhi8(-1)
1192 055c 1807 cpc r17,r24
1193 055e 91F0 breq .L82
1194 .L80:
1196 .LM121:
1197 0560 C601 movw r24,r12
1198 0562 0E94 0000 call _Z9GetchFileP14FileManageInfo
1199 0566 8993 st Y+,r24
1200 0568 0894 sec
1201 056a E108 sbc r14,__zero_reg__
1202 056c F108 sbc r15,__zero_reg__
1203 056e 0109 sbc r16,__zero_reg__
1204 0570 1109 sbc r17,__zero_reg__
1205 0572 8FEF ldi r24,lo8(-1)
1206 0574 E816 cp r14,r24
1207 0576 8FEF ldi r24,hi8(-1)
1208 0578 F806 cpc r15,r24
1209 057a 8FEF ldi r24,hlo8(-1)
1210 057c 0807 cpc r16,r24
1211 057e 8FEF ldi r24,hhi8(-1)
1212 0580 1807 cpc r17,r24
1213 0582 71F7 brne .L80
1214 .L82:
1215 .LBE23:
1216 /* epilogue: frame size=0 */
1217 0584 DF91 pop r29
1218 0586 CF91 pop r28
1219 0588 1F91 pop r17
1220 058a 0F91 pop r16
1221 058c FF90 pop r15
1222 058e EF90 pop r14
1223 0590 DF90 pop r13
1224 0592 CF90 pop r12
1225 0594 0895 ret
1226 /* epilogue end (size=9) */
1227 /* function void GetNchFile(FileManageInfo*, uint8*, uint32) size 53 (36) */
1233 .global _Z10PutNChFileP14FileManageInfoPhm
1235 _Z10PutNChFileP14FileManageInfoPhm:
514:file.c **** }
515:file.c **** }
516:file.c ****
517:file.c **** /*
518:file.c **** ;**************************************************************************************************
519:file.c **** ;* 函數名稱 : PutNchFile
520:file.c **** ;* 描 述 : 寫多個字節到文件
521:file.c **** ;* 輸 入 : fp: 文件指針; str: 要寫入的內容; nbyte: 字節數
522:file.c **** ;*
523:file.c **** ;* 輸 出 : 無
524:file.c **** ;**************************************************************************************************
525:file.c **** ;*/
526:file.c **** void PutNChFile(M_FILE fp, uint8 *str, uint32 nbyte)
527:file.c **** {
1237 .LM122:
1238 /* prologue: frame size=0 */
1239 0596 AF92 push r10
1240 0598 BF92 push r11
1241 059a CF92 push r12
1242 059c DF92 push r13
1243 059e EF92 push r14
1244 05a0 FF92 push r15
1245 05a2 1F93 push r17
1246 05a4 CF93 push r28
1247 05a6 DF93 push r29
1248 /* prologue end (size=9) */
1249 05a8 5C01 movw r10,r24
1250 05aa EB01 movw r28,r22
1251 05ac 6901 movw r12,r18
1252 05ae 7A01 movw r14,r20
1253 .LBB24:
1254 .LBB25:
528:file.c **** uint8 ch;
529:file.c ****
530:file.c **** while (nbyte-- > 0)
531:file.c **** {
532:file.c **** ch = *str++;
533:file.c **** if (ch != PutchFile(fp, ch))
534:file.c **** return;
1256 .LM123:
1257 05b0 0894 sec
1258 05b2 C108 sbc r12,__zero_reg__
1259 05b4 D108 sbc r13,__zero_reg__
1260 05b6 E108 sbc r14,__zero_reg__
1261 05b8 F108 sbc r15,__zero_reg__
1262 05ba 8FEF ldi r24,lo8(-1)
1263 05bc C816 cp r12,r24
1264 05be 8FEF ldi r24,hi8(-1)
1265 05c0 D806 cpc r13,r24
1266 05c2 8FEF ldi r24,hlo8(-1)
1267 05c4 E806 cpc r14,r24
1268 05c6 8FEF ldi r24,hhi8(-1)
1269 05c8 F806 cpc r15,r24
1270 05ca A9F0 breq .L83
1271 .L87:
1273 .LM124:
1274 05cc 1991 ld r17,Y+
1276 .LM125:
1277 05ce 612F mov r22,r17
1278 05d0 C501 movw r24,r10
1279 05d2 0E94 0000 call _Z9PutchFileP14FileManageInfoh
1280 05d6 1817 cp r17,r24
1281 05d8 71F4 brne .L83
1283 .LM126:
1284 05da 0894 sec
1285 05dc C108 sbc r12,__zero_reg__
1286 05de D108 sbc r13,__zero_reg__
1287 05e0 E108 sbc r14,__zero_reg__
1288 05e2 F108 sbc r15,__zero_reg__
1289 05e4 8FEF ldi r24,lo8(-1)
1290 05e6 C816 cp r12,r24
1291 05e8 8FEF ldi r24,hi8(-1)
1292 05ea D806 cpc r13,r24
1293 05ec 8FEF ldi r24,hlo8(-1)
1294 05ee E806 cpc r14,r24
1295 05f0 8FEF ldi r24,hhi8(-1)
1296 05f2 F806 cpc r15,r24
1297 05f4 59F7 brne .L87
1298 .L83:
1299 .LBE25:
1300 .LBE24:
1301 /* epilogue: frame size=0 */
1302 05f6 DF91 pop r29
1303 05f8 CF91 pop r28
1304 05fa 1F91 pop r17
1305 05fc FF90 pop r15
1306 05fe EF90 pop r14
1307 0600 DF90 pop r13
1308 0602 CF90 pop r12
1309 0604 BF90 pop r11
1310 0606 AF90 pop r10
1311 0608 0895 ret
1312 /* epilogue end (size=10) */
1313 /* function void PutNChFile(FileManageInfo*, uint8*, uint32) size 58 (39) */
1318 .global _Z8PutSFileP14FileManageInfoPh
1320 _Z8PutSFileP14FileManageInfoPh:
535:file.c **** }
536:file.c **** }
537:file.c ****
538:file.c **** /*
539:file.c **** ;**************************************************************************************************
540:file.c **** ;* 函數名稱 : PutSFile
541:file.c **** ;* 描 述 : 寫字符串到文件
542:file.c **** ;* 輸 入 : fp: 文件指針; str: 要寫入的內容;
543:file.c **** ;*
544:file.c **** ;* 輸 出 : 無
545:file.c **** ;**************************************************************************************************
546:file.c **** ;*/
547:file.c **** void PutSFile(M_FILE fp, uint8 *str)
548:file.c **** {
1322 .LM127:
1323 /* prologue: frame size=0 */
1324 060a EF92 push r14
1325 060c FF92 push r15
1326 060e 1F93 push r17
1327 0610 CF93 push r28
1328 0612 DF93 push r29
1329 /* prologue end (size=5) */
1330 0614 7C01 movw r14,r24
1331 0616 EB01 movw r28,r22
1332 .LBB26:
1333 .LBB27:
549:file.c **** uint8 ch;
550:file.c ****
551:file.c **** if ((ch = *str++) != '\0')
1335 .LM128:
1336 0618 1991 ld r17,Y+
1337 061a 1123 tst r17
1338 061c 69F0 breq .L89
1339 .L91:
552:file.c **** {
553:file.c **** do
554:file.c **** {
555:file.c **** if (ch != PutchFile(fp, ch))
1341 .LM129:
1342 061e 612F mov r22,r17
1343 0620 C701 movw r24,r14
1344 0622 0E94 0000 call _Z9PutchFileP1
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -