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

📄 printf_p.lst

📁 LPC2294开发板资源,包括源代码,BOOTLOAER,SCH,PCB和器件清单
💻 LST
📖 第 1 页 / 共 4 页
字号:
 650 056c 2000000A 		and	r0, r0, #255
 651              	.LVL86:
 652              		.loc 1 387 0
 653              		cmp	r0, #9
 654 0570 08A0A0E1 		.loc 1 388 0
 655              		addls	r3, r0, #48
 656 0574 3FB08DE2 		andls	r7, r3, #255
 657              		.loc 1 387 0
 658 0578 0C209DE5 		bls	.L127
 659 057c 00208DE5 		.loc 1 390 0
 660              		add	r0, r0, #87
 661              	.LVL87:
 662              		and	r7, r0, #255
 382:printf_P.c    **** 				register unsigned char _d,notlastdigit;
 383:printf_P.c    **** 				do {
 384:printf_P.c    **** 					notlastdigit=(_ulong>=base);
 385:printf_P.c    **** 					_d = _ulong % base;
 663              	91 0
 664 0580 0A00A0E1 		cmp	r4, #88
 665              		andeq	r7, r0, #223
 666 0584 0C109DE5 	.LVL89:
 667              	.L127:
 668 0588 FEFFFFEB 		.loc 1 393 0
 669              		strb	r7, [fp, #-1]!
 670 058c FF0000E2 		.loc 1 394 0
 671              		mov	r0, sl
 386:printf_P.c    **** 
 387:printf_P.c    **** 					if (_d<10) {
 672              	ldr	r1, [sp, #0]
 673 0590 090050E3 		bl	__udivsi3
 388:printf_P.c    **** 						_d+='0';
 674              	ov	r8, r0
 675 0594 30308092 		.loc 1 395 0
 676 0598 FF700392 		ldr	r3, [sp, #0]
 677              		cmp	sl, r3
 678 059c 0300009A 		movcs	sl, r0
 389:printf_P.c    **** 					} else {
 390:printf_P.c    **** 						_d+='a'-10;
 679              	.L124
 680 05a0 570080E2 	.LVL91:
 681              	.L129:
 682 05a4 FF7000E2 		.loc 1 398 0
 683              		ldr	r2, [sp, #12]
 391:printf_P.c    **** 						if (ch=='X') _d&=~0x20;
 684              	r2, #8
 685 05a8 580054E3 		bne	.L123
 686 05ac DF700002 		tst	r6, #8
 687              		beq	.L123
 688              		cmp	r7, #48
 392:printf_P.c    **** 					}
 393:printf_P.c    **** 					*--cp=_d;
 689              	 1 399 0
 690 05b0 01706BE5 		movne	r3, #48
 394:printf_P.c    **** 					_ulong /= base;
 691              	VL92:
 692 05b4 0A00A0E1 		strneb	r3, [fp, #-1]!
 693              	.LVL93:
 694 05b8 00109DE5 	.L123:
 695 05bc FEFFFFEB 	.LBE5:
 696 05c0 0080A0E1 		.loc 1 403 0
 395:printf_P.c    **** 				} while (notlastdigit);
 697              	3, sp, #23
 698 05c4 00309DE5 		rsb	r3, fp, r3
 699 05c8 03005AE1 		add	r3, r3, #40
 700 05cc 00A0A021 		and	sl, r3, #255
 701 05d0 EAFFFF2A 	.LVL94:
 702              		mov	r7, r4
 703              	.LVL95:
 396:printf_P.c    **** #ifndef LIGHTPRINTF
 397:printf_P.c    **** 				// handle octal leading 0 
 398:printf_P.c    **** 				if (base==OCT && flags & ALT && *cp != '0')
 704              	, [sp, #8]
 705 05d4 0C209DE5 		and	r3, r2, #255
 706 05d8 080052E3 	.LVL96:
 707 05dc 0400001A 		b	.L111
 708 05e0 080016E3 	.LVL97:
 709 05e4 0200000A 	.L116:
 710 05e8 300057E3 		.loc 1 406 0
 399:printf_P.c    **** 					*--cp = '0';
 711              	, #0
 712 05ec 3030A013 		beq	.L151
 713              		.loc 1 410 0
 714 05f0 01306B15 		strb	r4, [sp, #23]
 715              		.loc 1 412 0
 716              		mov	r3, #0
 717              		strb	r3, [sp, #63]
 400:printf_P.c    **** #endif
 401:printf_P.c    **** 			}
 402:printf_P.c    **** 
 403:printf_P.c    **** 			size = buf + BUF - cp;
 718              	
 719 05f4 17308DE2 		mov	r7, r4
 720 05f8 03306BE0 		b	.L81
 721 05fc 283083E2 	.LVL99:
 722 0600 FFA003E2 	.L111:
 723              		.loc 1 434 0
 724 0604 0470A0E1 		and	r2, sl, #255
 725              		rsb	r3, r2, r3
 726 0608 08209DE5 	.LVL100:
 727 060c FF3002E2 		and	r3, r3, #255
 728              		str	r3, [sp, #16]
 729 0610 060000EA 		.loc 1 435 0
 730              		tst	r3, #128
 731              		beq	.L135
 404:printf_P.c    **** 	} else {  //default
 405:printf_P.c    **** 		/* "%?" prints ?, unless ? is NUL */
 406:printf_P.c    **** 			if (ch == '\0')
 732              	6:
 733 0614 000054E3 		mov	r3, #0
 734 0618 4600000A 		str	r3, [sp, #16]
 407:printf_P.c    **** 				goto done;
 408:printf_P.c    **** 			/* pretend it was %c with argument ch */
 409:printf_P.c    **** 			cp = buf;
 410:printf_P.c    **** 			*cp = ch;
 735              	35:
 736 061c 1740CDE5 		.loc 1 438 0
 411:printf_P.c    **** 			size = 1;
 412:printf_P.c    **** 			sign = '\0';
 737              	drb	r3, [sp, #63]	@ zero_extendqisi2
 738 0620 0030A0E3 		cmp	r3, #0
 739 0624 3F30CDE5 		.loc 1 439 0
 740              		addne	r3, sl, #1
 741 0628 0470A0E1 		andne	r3, r3, #255
 742 062c 3D0000EA 	.LVL102:
 743              		.loc 1 438 0
 744              		bne	.L139
 413:printf_P.c    **** 		}
 414:printf_P.c    **** 
 415:printf_P.c    **** 		/*
 416:printf_P.c    **** 		 * All reasonable formats wind up here.  At this point,
 417:printf_P.c    **** 		 * `cp' points to a string which (if not flags&LADJUST)
 418:printf_P.c    **** 		 * should be padded out to `width' places.  If
 419:printf_P.c    **** 		 * flags&ZEROPAD, it should first be prefixed by any
 420:printf_P.c    **** 		 * sign or other prefix; otherwise, it should be blank
 421:printf_P.c    **** 		 * padded before the prefix is emitted.  After any
 422:printf_P.c    **** 		 * left-hand padding and prefixing, emit zeroes
 423:printf_P.c    **** 		 * required by a decimal [diouxX] precision, then print
 424:printf_P.c    **** 		 * the string proper, then emit zeroes required by any
 425:printf_P.c    **** 		 * leftover floating precision; finally, if LADJUST,
 426:printf_P.c    **** 		 * pad with blanks.
 427:printf_P.c    **** 		 */
 428:printf_P.c    **** 
 429:printf_P.c    **** 		/*
 430:printf_P.c    **** 		 * compute actual size, so we know how much to pad.
 431:printf_P.c    **** 		 */
 432:printf_P.c    **** 		fieldsz = size;
 433:printf_P.c    **** 
 434:printf_P.c    **** 		dpad = dprec - size;
 745              	440 0
 746 0630 FF200AE2 		tst	r6, #64
 747 0634 033062E0 		andeq	r3, sl, #255
 748              		.loc 1 441 0
 749 0638 FF3003E2 		addne	r3, r2, #2
 750 063c 10308DE5 	.LVL103:
 435:printf_P.c    **** 		if (dpad < 0)
 751              		r3, r3, #255
 752 0640 800013E3 	.LVL104:
 753 0644 0100000A 	.L139:
 754              		.loc 1 442 0
 755              		ldr	r2, [sp, #16]
 756 0648 0030A0E3 		add	r3, r3, r2
 757 064c 10308DE5 	.LVL105:
 758              		and	r4, r3, #255
 436:printf_P.c    **** 		    dpad = 0;
 437:printf_P.c    **** 
 438:printf_P.c    **** 		if (sign)
 759              	
 760 0650 3F30DDE5 	.LVL107:
 761 0654 000053E3 		.loc 1 445 0
 439:printf_P.c    **** 			fieldsz++;
 762              	nds	r3, r6, #48
 763 0658 01308A12 		str	r3, [sp, #4]
 764 065c FF300312 		.loc 1 446 0
 765              		rsbeq	r0, r4, r9
 766              	.LVL108:
 767 0660 0300001A 		moveq	r0, r0, asl #24
 440:printf_P.c    **** 		else if (flags & HEXPREFIX)
 768              		r0, r0, asr #24
 769 0664 400016E3 		bleq	PAD_SP
 770 0668 FF300A02 	.LVL109:
 441:printf_P.c    **** 			fieldsz += 2;
 771              	42:
 772 066c 02308212 		.loc 1 449 0
 773              		ldrb	r3, [sp, #63]	@ zero_extendqisi2
 774 0670 FF300312 		cmp	r3, #0
 775              		beq	.L144
 776              	.LVL110:
 442:printf_P.c    **** 		fieldsz += dpad;
 777              	1 450 0
 778 0674 10209DE5 		add	r0, sp, #63
 779 0678 023083E0 	.LVL111:
 780              		mov	r1, #1
 781 067c FF4003E2 	.LVL112:
 782              		bl	PRINT
 783              	.LVL113:
 443:printf_P.c    **** 
 444:printf_P.c    **** 		/* right-adjusting blank padding */
 445:printf_P.c    **** 		if ((flags & (LADJUST|ZEROPAD)) == 0)
 784              	6
 785 0680 303016E2 	.LVL114:
 786 0684 04308DE5 	.L144:
 446:printf_P.c    **** 			PAD_SP(width - fieldsz);
 787              	oc 1 451 0
 788 0688 09006400 		tst	r6, #64
 789              		beq	.L146
 790 068c 000CA001 		.loc 1 452 0
 791 0690 400CA001 		mov	r3, #48
 792 0694 FEFFFF0B 	.LVL115:
 793              		strb	r3, [sp, #21]
 794              		.loc 1 453 0
 447:printf_P.c    **** 
 448:printf_P.c    **** 		/* prefix */
 449:printf_P.c    **** 		if (sign) {
 795              	, [sp, #22]
 796 0698 3F30DDE5 		.loc 1 454 0
 797 069c 000053E3 		add	r0, sp, #21
 798 06a0 0300000A 	.LVL116:
 799              		mov	r1, #2
 450:printf_P.c    **** 			PRINT(&sign, 1);
 800              	17:
 801 06a4 3F008DE2 		bl	PRINT
 802              	.LVL118:
 803 06a8 0110A0E3 	.L146:
 804              		.loc 1 458 0
 805 06ac FEFFFFEB 		ldr	r2, [sp, #4]
 806              		cmp	r2, #32
 807 06b0 070000EA 		.loc 1 459 0
 808              		rsbeq	r0, r4, r9
 809              	.LVL119:
 451:printf_P.c    **** 		} else if (flags & HEXPREFIX) {
 810              	 r0, asl #24
 811 06b4 400016E3 		moveq	r0, r0, asr #24
 812 06b8 0500000A 		bleq	PAD_0
 452:printf_P.c    **** 			ox[0] = '0';
 813              	L120:
 814 06bc 3030A0E3 	.L148:
 815              		.loc 1 462 0
 816 06c0 1530CDE5 		ldr	r3, [sp, #16]
 453:printf_P.c    **** 			ox[1] = ch;
 817              		r0, r3, asl #24
 818 06c4 1670CDE5 	.LVL121:
 454:printf_P.c    **** 			PRINT(ox, 2);
 819              	ov	r0, r0, asr #24
 820 06c8 15008DE2 		bl	PAD_0
 821              	.LVL122:
 822 06cc 0210A0E3 		.loc 1 465 0
 823              		mov	r1, sl, asl #24
 824 06d0 FEFFFFEB 		mov	r0, fp
 825              		mov	r1, r1, asr #24
 826              		bl	PRINT
 455:printf_P.c    **** 		}
 456:printf_P.c    **** 
 457:printf_P.c    **** 		/* right-adjusting zero padding */
 458:printf_P.c    **** 		if ((flags & (LADJUST|ZEROPAD)) == ZEROPAD)
 827              	468 0
 828 06d4 04209DE5 		tst	r6, #16
 829 06d8 200052E3 		beq	.L169
 459:printf_P.c    **** 			PAD_0(width - fieldsz);
 830              	oc 1 469 0
 831 06dc 09006400 		rsb	r0, r4, r9
 832              		mov	r0, r0, asl #24
 833 06e0 000CA001 		mov	r0, r0, asr #24
 834 06e4 400CA001 		bl	PAD_SP
 835 06e8 FEFFFF0B 		b	.L169
 836              	.L35:
 837              	.LVL123:
 460:printf_P.c    **** 
 461:printf_P.c    **** 		/* leading zeroes from decimal precision */
 462:printf_P.c    **** 		PAD_0(dpad);
 838              	loc 1 473 0
 839 06ec 10309DE5 		add	fp, sp, #23
 840 06f0 030CA0E1 		mov	r2, #1
 841              		mov	sl, r2
 842 06f4 400CA0E1 		b	.L136
 843 06f8 FEFFFFEB 	.LVL124:
 844              	.L151:
 463:printf_P.c    **** 
 464:printf_P.c    **** 		/* the string or number proper */
 465:printf_P.c    **** 		PRINT(cp, size);
 845              	, sp, #68
 846 06fc 0A1CA0E1 		ldmfd	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
 847 0700 0B00A0E1 		add	sp, sp, #16
 848 0704 411CA0E1 		bx	lr
 849 0708 FEFFFFEB 	.LFE6:
 466:printf_P.c    **** 
 467:printf_P.c    **** 		/* left-adjusting padding (always blank) */
 468:printf_P.c    **** 		if (flags & LADJUST)
 850              	e	_printf_P, .-_printf_P
 851 070c 100016E3 		.section	.debug_frame,"",%progbits
 852 0710 69FEFF0A 	.Lframe0:
 469:printf_P.c    **** 			PAD_SP(width - fieldsz);
 853              	byte	.LECIE0-.LSCIE0
 854 0714 090064E0 	.LSCIE0:
 855 0718 000CA0E1 		.4byte	0xffffffff
 856 071c 400CA0E1 		.byte	0x1
 857 0720 FEFFFFEB 		.ascii	"\000"
 858 0724 64FEFFEA 		.uleb128 0x1
 859              		.sleb128 -4
 860              		.byte	0xe
 861              		.byte	0xc
 470:printf_P.c    **** 	}
 471:printf_P.c    **** done:
 472:printf_P.c    **** 	va_end(ap);
 473:printf_P.c    **** }
 862              	 0xd
 863 0728 17B08DE2 		.uleb128 0x0
 864 072c 0120A0E3 		.align	2
 865 0730 02A0A0E1 	.LECIE0:
 866 0734 C3FFFFEA 	.LSFDE0:
 867              		.4byte	.LEFDE0-.LASFDE0
 868              	.LASFDE0:
 869 0738 44D08DE2 		.4byte	.Lframe0
 870 073c F04FBDE8 		.4byte	.LFB5
 871 0740 10D08DE2 		.4byte	.LFE5-.LFB5
 872 0744 1EFF2FE1 		.byte	0x4
 873              		.4byte	.LCFI0-.LFB5
 874              		.byte	0xe
 1006              		.4byte	0x0
DEFINED SYMBOLS
                            *ABS*:00000000 printf_P.c
C:\DOKUME~1\root\LOKALE~1\Temp/ccg7aaaa.s:13     .text:00000000 PAD_0
C:\DOKUME~1\root\LOKALE~1\Temp/ccg7aaaa.s:20     .text:00000000 $a
C:\DOKUME~1\root\LOKALE~1\Temp/ccg7aaaa.s:42     .text:0000002c PAD_SP
C:\DOKUME~1\root\LOKALE~1\Temp/ccg7aaaa.s:70     .text:00000058 PRINTP
C:\DOKUME~1\root\LOKALE~1\Temp/ccg7aaaa.s:96     .text:0000007c PRINT
C:\DOKUME~1\root\LOKALE~1\Temp/ccg7aaaa.s:124    .text:000000a0 _printf_P

UNDEFINED SYMBOLS
uart_sendchar
uart0Putch
__umodsi3
__udivsi3
memchr
strlen

⌨️ 快捷键说明

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