⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fdt.lst

📁 AT89C51 MP3源程序AT89C51 MP3源程序 SD AT89C51 MP3源程序AT89C51 MP3源程序 SD
💻 LST
📖 第 1 页 / 共 3 页
字号:
 189:fdt.c         **** 
 190:fdt.c         **** 	if (extp != 0)				/* 有扩展名 */
 532               	.LM50:
 533 0240 4423      		tst r20
 534 0242 E9F0      		breq .L40
 191:fdt.c         **** 	{
 192:fdt.c         **** 		i = len - 1;			/* 名字末字节位置 */
 536               	.LM51:
 537 0244 932F      		mov r25,r19
 538 0246 9150      		subi r25,lo8(-(-1))
 193:fdt.c         **** 		/* 将扩展名移到最后 */
 194:fdt.c         **** 		for (z = 10; i > extp; i--, z--)
 540               	.LM52:
 541 0248 2AE0      		ldi r18,lo8(10)
 542 024a 4917      		cp r20,r25
 543 024c 68F4      		brsh .L56
 544 024e DB01      		movw r26,r22
 545 0250 A90F      		add r26,r25
 546 0252 B11D      		adc r27,__zero_reg__
 547               	.L44:
 195:fdt.c         **** 		{
 196:fdt.c         **** 			Filename[z] = Filename[i];
 549               	.LM53:
 550 0254 FB01      		movw r30,r22
 551 0256 E20F      		add r30,r18
 552 0258 F11D      		adc r31,__zero_reg__
 553 025a 8C91      		ld r24,X
 554 025c 1197      		sbiw r26,1
 555 025e 8083      		st Z,r24
 557               	.LM54:
 558 0260 9150      		subi r25,lo8(-(-1))
 559 0262 2150      		subi r18,lo8(-(-1))
 560 0264 4917      		cp r20,r25
 561 0266 B0F3      		brlo .L44
 562               	.L56:
 197:fdt.c         **** 		}
 198:fdt.c         **** 		/* 中间填入空格 */
 199:fdt.c         **** 		for (; z >= extp; z--)
 564               	.LM55:
 565 0268 2417      		cp r18,r20
 566 026a A0F0      		brlo .L49
 567 026c 80E2      		ldi r24,lo8(32)
 568               	.L48:
 200:fdt.c         **** 		{
 201:fdt.c         **** 			Filename[z] = ' ';
 570               	.LM56:
 571 026e FB01      		movw r30,r22
 572 0270 E20F      		add r30,r18
 573 0272 F11D      		adc r31,__zero_reg__
 574 0274 8083      		st Z,r24
 576               	.LM57:
 577 0276 2150      		subi r18,lo8(-(-1))
 578 0278 2417      		cp r18,r20
 579 027a C8F7      		brsh .L48
 580 027c 0BC0      		rjmp .L49
 581               	.L40:
 202:fdt.c         **** 		}
 203:fdt.c         **** 	}
 204:fdt.c         **** 	else						/* 无扩展名 */
 205:fdt.c         **** 	{
 206:fdt.c         **** 		i = len;				/* 名字后的位置 */	
 583               	.LM58:
 584 027e 932F      		mov r25,r19
 207:fdt.c         **** 		for (; i < 11; i++)		/* 余下的空间填入空格 */
 586               	.LM59:
 587 0280 3B30      		cpi r19,lo8(11)
 588 0282 40F4      		brsh .L49
 589 0284 80E2      		ldi r24,lo8(32)
 590 0286 FB01      		movw r30,r22
 591 0288 E30F      		add r30,r19
 592 028a F11D      		adc r31,__zero_reg__
 593               	.L53:
 208:fdt.c         **** 		{
 209:fdt.c         **** 			Filename[i] = ' ';
 595               	.LM60:
 596 028c 8193      		st Z+,r24
 598               	.LM61:
 599 028e 9F5F      		subi r25,lo8(-(1))
 600 0290 9B30      		cpi r25,lo8(11)
 601 0292 E0F3      		brlo .L53
 602               	.L49:
 210:fdt.c         **** 		}
 211:fdt.c         **** 	}
 212:fdt.c         **** 	return TRUE;
 604               	.LM62:
 605 0294 81E0      		ldi r24,lo8(1)
 606 0296 90E0      		ldi r25,hi8(1)
 607               	.LBE9:
 608               	.LBE8:
 213:fdt.c         **** }
 610               	.LM63:
 611 0298 0895      		ret
 612               	/* epilogue: frame size=0 */
 613 029a 0895      		ret
 614               	/* epilogue end (size=1) */
 615               	/* function uint8 FileNameChange(char*, char*) size 113 (112) */
 627               	.global	_Z18FindSYSNameRootFDTPcP4_FDT
 629               	_Z18FindSYSNameRootFDTPcP4_FDT:
 214:fdt.c         **** 
 215:fdt.c         **** /*
 216:fdt.c         **** ;**************************************************************************************************
 217:fdt.c         **** ;* 函数名称 : FindSYSNameRootFDT
 218:fdt.c         **** ;* 描    述 : 查找指定内部名字的根目录项
 219:fdt.c         **** ;* 输 	 入 : Filename[11]: 内部文件名
 220:fdt.c         **** ;*        
 221:fdt.c         **** ;* 输 	 出 : 目录项索引
 222:fdt.c         **** ;**************************************************************************************************
 223:fdt.c         **** ;*/
 224:fdt.c         **** uint16 FindSYSNameRootFDT(char Filename[11], FDT *pFDT)
 225:fdt.c         **** {
 631               	.LM64:
 632               	/* prologue: frame size=0 */
 633 029c EF92      		push r14
 634 029e FF92      		push r15
 635 02a0 0F93      		push r16
 636 02a2 1F93      		push r17
 637 02a4 CF93      		push r28
 638 02a6 DF93      		push r29
 639               	/* prologue end (size=6) */
 640 02a8 7C01      		movw r14,r24
 641 02aa 8B01      		movw r16,r22
 642               	.LBB10:
 643               	.LBB11:
 226:fdt.c         **** 	uint16 i;
 227:fdt.c         **** 
 228:fdt.c         **** 	for (i = 0; i < MAX_FDT_NUM; i++)
 645               	.LM65:
 646 02ac C0E0      		ldi r28,lo8(0)
 647 02ae D0E0      		ldi r29,hi8(0)
 648               	.L69:
 650               	.LM66:
 651 02b0 8091 0000 		lds r24,FS_RootEntCnt
 652 02b4 9091 0000 		lds r25,(FS_RootEntCnt)+1
 653 02b8 C817      		cp r28,r24
 654 02ba D907      		cpc r29,r25
 655 02bc A8F4      		brsh .L63
 229:fdt.c         **** 	{
 230:fdt.c         **** 		if (!ReadRootFDTInfo(i, pFDT))			/* 读取第i号根目录项 */
 657               	.LM67:
 658 02be B801      		movw r22,r16
 659 02c0 CE01      		movw r24,r28
 660 02c2 0E94 0000 		call _Z15ReadRootFDTInfojP4_FDT
 661 02c6 8823      		tst r24
 662 02c8 29F4      		brne .L65
 231:fdt.c         **** 		{
 232:fdt.c         **** 			return FDT_NO_FOUND;
 664               	.LM68:
 665 02ca 8091 0000 		lds r24,FS_RootEntCnt
 666 02ce 9091 0000 		lds r25,(FS_RootEntCnt)+1
 667 02d2 0BC0      		rjmp .L61
 668               	.L65:
 233:fdt.c         **** 		}
 234:fdt.c         **** 		if (IsEqual(Filename, pFDT->Name, 11))	/* 同名,找到 */
 670               	.LM69:
 671 02d4 4BE0      		ldi r20,lo8(11)
 672 02d6 50E0      		ldi r21,hi8(11)
 673 02d8 B801      		movw r22,r16
 674 02da C701      		movw r24,r14
 675 02dc 0E94 0000 		call _Z7IsEqualPvS_j
 676 02e0 8823      		tst r24
 677 02e2 11F4      		brne .L63
 679               	.LM70:
 680 02e4 2196      		adiw r28,1
 681 02e6 E4CF      		rjmp .L69
 682               	.L63:
 235:fdt.c         **** 		{
 236:fdt.c         **** 			break;
 237:fdt.c         **** 		}
 238:fdt.c         **** 	}
 239:fdt.c         **** 	return i;
 684               	.LM71:
 685 02e8 CE01      		movw r24,r28
 686               	.L61:
 687               	.LBE11:
 688               	.LBE10:
 689               	/* epilogue: frame size=0 */
 690 02ea DF91      		pop r29
 691 02ec CF91      		pop r28
 692 02ee 1F91      		pop r17
 693 02f0 0F91      		pop r16
 694 02f2 FF90      		pop r15
 695 02f4 EF90      		pop r14
 696 02f6 0895      		ret
 697               	/* epilogue end (size=7) */
 698               	/* function uint16 FindSYSNameRootFDT(char*, FDT*) size 46 (33) */
 706               	.global	_Z19FindUSERNameRootFDTPcP4_FDT
 708               	_Z19FindUSERNameRootFDTPcP4_FDT:
 240:fdt.c         **** }
 241:fdt.c         **** 
 242:fdt.c         **** /*
 243:fdt.c         **** ;**************************************************************************************************
 244:fdt.c         **** ;* 函数名称 : FindUSERNameRootFDT
 245:fdt.c         **** ;* 描    述 : 查找指定外部名字的根目录项
 246:fdt.c         **** ;* 输 	 入 : NameStr[11]: 外部文件名
 247:fdt.c         **** ;*        
 248:fdt.c         **** ;* 输 	 出 : 目录项索引
 249:fdt.c         **** ;**************************************************************************************************
 250:fdt.c         **** ;*/
 251:fdt.c         **** uint16 FindUSERNameRootFDT(char NameStr[11], FDT *pFDT)
 252:fdt.c         **** {
 710               	.LM72:
 711               	/* prologue: frame size=11 */
 712 02f8 0F93      		push r16
 713 02fa 1F93      		push r17
 714 02fc CF93      		push r28
 715 02fe DF93      		push r29
 716 0300 CDB7      		in r28,__SP_L__
 717 0302 DEB7      		in r29,__SP_H__
 718 0304 2B97      		sbiw r28,11
 719 0306 0FB6      		in __tmp_reg__,__SREG__
 720 0308 F894      		cli
 721 030a DEBF      		out __SP_H__,r29
 722 030c 0FBE      		out __SREG__,__tmp_reg__
 723 030e CDBF      		out __SP_L__,r28
 724               	/* prologue end (size=12) */
 725 0310 8B01      		movw r16,r22
 726               	.LBB12:
 727               	.LBB13:
 253:fdt.c         **** 	char Filename[11];
 254:fdt.c         **** 
 255:fdt.c         **** 	if (!FileNameChange(NameStr, Filename))		/* 将外部名字转化为内部名字 */
 729               	.LM73:
 730 0312 BE01      		movw r22,r28
 731 0314 6F5F      		subi r22,lo8(-(1))
 732 0316 7F4F      		sbci r23,hi8(-(1))
 733 0318 0E94 0000 		call _Z14FileNameChangePcS_
 734 031c 8823      		tst r24
 735 031e 29F4      		brne .L71
 256:fdt.c         **** 	{
 257:fdt.c         **** 		return FDT_NO_FOUND;
 737               	.LM74:
 738 0320 8091 0000 		lds r24,FS_RootEntCnt
 739 0324 9091 0000 		lds r25,(FS_RootEntCnt)+1
 740 0328 05C0      		rjmp .L70
 741               	.L71:
 258:fdt.c         **** 	}
 259:fdt.c         **** 	return FindSYSNameRootFDT(Filename, pFDT);	/* 查找内部名字的根目录项 */
 743               	.LM75:
 744 032a B801      		movw r22,r16
 745 032c CE01      		movw r24,r28
 746 032e 0196      		adiw r24,1
 747 0330 0E94 0000 		call _Z18FindSYSNameRootFDTPcP4_FDT
 748               	.L70:
 749               	.LBE13:
 750               	.LBE12:
 751               	/* epilogue: frame size=11 */
 752 0334 2B96      		adiw r28,11
 753 0336 0FB6      		in __tmp_reg__,__SREG__
 754 0338 F894      		cli
 755 033a DEBF      		out __SP_H__,r29
 756 033c 0FBE      		out __SREG__,__tmp_reg__
 757 033e CDBF      		out __SP_L__,r28
 758 0340 DF91      		pop r29
 759 0342 CF91      		pop r28
 760 0344 1F91      		pop r17
 761 0346 0F91      		pop r16
 762 0348 0895      		ret
 763               	/* epilogue end (size=11) */
 764               	/* function uint16 FindUSERNameRootFDT(char*, FDT*) size 41 (18) */
 769               		.text
 771               	Letext:
 772               	/* File "fdt.c": code  425 = 0x01a9 ( 339), prologues  42, epilogues  44 */
DEFINED SYMBOLS
                            *ABS*:00000000 fdt.c
                            *ABS*:0000003f __SREG__
                            *ABS*:0000003e __SP_H__
                            *ABS*:0000003d __SP_L__
                            *ABS*:00000000 __tmp_reg__
                            *ABS*:00000001 __zero_reg__
C:\Users\ADMINI~1\AppData\Local\Temp/ccWyaaaa.s:85     .text:00000000 _Z15ReadRootFDTInfojP4_FDT
C:\Users\ADMINI~1\AppData\Local\Temp/ccWyaaaa.s:222    .text:000000ba _Z16WriteRootFDTInfojP4_FDT
C:\Users\ADMINI~1\AppData\Local\Temp/ccWyaaaa.s:343    .text:00000160 _Z14GetFreeRootFDTv
C:\Users\ADMINI~1\AppData\Local\Temp/ccWyaaaa.s:423    .text:000001be _Z14FileNameChangePcS_
C:\Users\ADMINI~1\AppData\Local\Temp/ccWyaaaa.s:629    .text:0000029c _Z18FindSYSNameRootFDTPcP4_FDT
C:\Users\ADMINI~1\AppData\Local\Temp/ccWyaaaa.s:708    .text:000002f8 _Z19FindUSERNameRootFDTPcP4_FDT
C:\Users\ADMINI~1\AppData\Local\Temp/ccWyaaaa.s:771    .text:0000034a Letext

UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
FS_RootEntCnt
FS_RootDirStartSec
_Z10OpenSectorm
_Z9CopyNbytePvS_j
_Z11WriteSectorv
_Z7IsEqualPvS_j

⌨️ 快捷键说明

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