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

📄 printf_p.lst

📁 LPC2294开发板资源,包括源代码,BOOTLOAER,SCH,PCB和器件清单
💻 LST
📖 第 1 页 / 共 4 页
字号:
 380:printf_P.c    **** 			cp = buf + BUF;
 381:printf_P.c    **** 			if (_ulong != 0 || prec != 0) {
 646              	5:
 647 0500 000053E3 	.LVL75:
 648 0504 00005B03 	.LBB5:
 649              		.loc 1 385 0
 650 0508 DF8008E2 		mov	r1, r6
 651              	.LVL76:
 652 050c 34608D02 		mov	r0, fp
 653              	.LVL77:
 654 0510 1D00000A 		bl	__umodsi3
 655              	.LVL78:
 656              		and	r0, r0, #255
 657 0514 0BA0A0E1 	.LVL79:
 658              		.loc 1 388 0
 659 0518 34708DE2 		add	r3, r0, #48
 660              		.loc 1 387 0
 661              		cmp	r0, #9
 662              		.loc 1 388 0
 663              		and	r5, r3, #255
 664              	.LVL80:
 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;
 665              	r0, r0, #87
 666 051c 0610A0E1 	.LVL81:
 667              		.loc 1 387 0
 668 0520 0B00A0E1 		bls	.L118
 669              		.loc 1 391 0
 670 0524 FEFFFFEB 		cmp	r4, #88
 671              		.loc 1 390 0
 672 0528 FF0000E2 		and	r5, r0, #255
 673              		.loc 1 391 0
 386:printf_P.c    **** 
 387:printf_P.c    **** 					if (_d<10) {
 388:printf_P.c    **** 						_d+='0';
 674              	, r0, #223
 675 052c 303080E2 	.L118:
 676              		.loc 1 394 0
 677 0530 090050E3 		mov	r0, fp
 678              		mov	r1, r6
 679 0534 FF5003E2 		.loc 1 393 0
 680              		strb	r5, [r7, #-1]!
 389:printf_P.c    **** 					} else {
 390:printf_P.c    **** 						_d+='a'-10;
 681              	 394 0
 682 0538 570080E2 		bl	__udivsi3
 683              		.loc 1 395 0
 684              		cmp	sl, r6
 685 053c 0200009A 		.loc 1 394 0
 391:printf_P.c    **** 						if (ch=='X') _d&=~0x20;
 686              	fp, r0
 687 0540 580054E3 		.loc 1 395 0
 688              		mov	sl, r0
 689 0544 FF5000E2 		bcs	.L115
 690              	.LVL82:
 691 0548 DF500002 		.loc 1 398 0
 692              		cmp	r6, #8
 392:printf_P.c    **** 					}
 393:printf_P.c    **** 					*--cp=_d;
 394:printf_P.c    **** 					_ulong /= base;
 693              	 395 0
 694 054c 0B00A0E1 		mov	r6, r7
 695 0550 0610A0E1 	.LVL83:
 696              		.loc 1 398 0
 697 0554 015067E5 		bne	.L114
 698              		tst	r8, #8
 699 0558 FEFFFFEB 		beq	.L114
 395:printf_P.c    **** 				} while (notlastdigit);
 700              	, #48
 701 055c 06005AE1 		.loc 1 399 0
 702              		movne	r3, #48
 703 0560 00B0A0E1 		strneb	r3, [r6, #-1]!
 704              	.LVL84:
 705 0564 00A0A0E1 	.L114:
 706 0568 EBFFFF2A 	.LBE5:
 707              		.loc 1 403 0
 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')
 708              	 sp, #60
 709 056c 080056E3 		rsb	r3, r6, r2
 710              		sub	r3, r3, #8
 711 0570 0760A0E1 		and	r5, r3, #255
 712              	.LVL85:
 713              		ldr	r3, [sp, #8]
 714 0574 0400001A 		and	r2, r3, #255
 715 0578 080018E3 	.LVL86:
 716 057c 0200000A 		b	.L102
 717 0580 300055E3 	.LVL87:
 399:printf_P.c    **** 					*--cp = '0';
 718              	oc 1 406 0
 719 0584 3030A013 		cmp	r4, #0
 720 0588 01306615 		beq	.L142
 721              		.loc 1 412 0
 722              		strb	r3, [sp, #59]
 723              		.loc 1 410 0
 400:printf_P.c    **** #endif
 401:printf_P.c    **** 			}
 402:printf_P.c    **** 
 403:printf_P.c    **** 			size = buf + BUF - cp;
 724              	r4, [sp, #12]
 725 058c 3C208DE2 		b	.L72
 726 0590 023066E0 	.LVL88:
 727 0594 083043E2 	.L102:
 728 0598 FF5003E2 		.loc 1 434 0
 729              		and	r1, r5, #255
 730 059c 08309DE5 	.LVL89:
 731 05a0 FF2003E2 		rsb	r3, r1, r2
 732              		and	r7, r3, #255
 733 05a4 040000EA 		.loc 1 435 0
 734              		tst	r7, #128
 735              		movne	r7, #0
 404:printf_P.c    **** 	} else {  //default
 405:printf_P.c    **** 		/* "%?" prints ?, unless ? is NUL */
 406:printf_P.c    **** 			if (ch == '\0')
 736              	 1 438 0
 737 05a8 000054E3 		ldrb	r3, [sp, #59]	@ zero_extendqisi2
 738 05ac 4100000A 		cmp	r3, #0
 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;
 411:printf_P.c    **** 			size = 1;
 412:printf_P.c    **** 			sign = '\0';
 739              	oc 1 439 0
 740 05b0 3B30CDE5 		addne	r3, r5, #1
 741              		.loc 1 438 0
 742 05b4 0C40CDE5 		bne	.L166
 743 05b8 390000EA 		.loc 1 440 0
 744              		tst	r8, #64
 745              		andeq	r3, r5, #255
 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;
 746              	
 747 05bc FF1005E2 		beq	.L130
 748              		.loc 1 441 0
 749 05c0 023061E0 		add	r3, r1, #2
 750 05c4 FF7003E2 	.LVL91:
 435:printf_P.c    **** 		if (dpad < 0)
 751              	6:
 752 05c8 800017E3 		and	r3, r3, #255
 753 05cc 0070A013 	.LVL92:
 754              	.L130:
 436:printf_P.c    **** 		    dpad = 0;
 437:printf_P.c    **** 
 438:printf_P.c    **** 		if (sign)
 755              	c 1 442 0
 756 05d0 3B30DDE5 		add	r3, r3, r7
 757 05d4 000053E3 	.LVL93:
 439:printf_P.c    **** 			fieldsz++;
 758              	oc 1 445 0
 759 05d8 01308512 		ands	r2, r8, #48
 760              	.LVL94:
 761 05dc 0300001A 		str	r2, [sp, #0]
 440:printf_P.c    **** 		else if (flags & HEXPREFIX)
 762              	c 1 442 0
 763 05e0 400018E3 		and	sl, r3, #255
 764 05e4 FF300502 	.LVL95:
 765              		.loc 1 445 0
 766 05e8 0100000A 		.loc 1 446 0
 441:printf_P.c    **** 			fieldsz += 2;
 767              	q	r3, [sp, #4]
 768 05ec 023081E2 		rsbeq	r0, sl, r3
 769              	.LVL96:
 770              		moveq	r0, r0, asl #24
 771 05f0 FF3003E2 		moveq	r0, r0, asr #24
 772              		bleq	PAD_SP
 773              	.LVL97:
 442:printf_P.c    **** 		fieldsz += dpad;
 774              		.loc 1 449 0
 775 05f4 073083E0 		ldrb	r3, [sp, #59]	@ zero_extendqisi2
 776              		cmp	r3, #0
 443:printf_P.c    **** 
 444:printf_P.c    **** 		/* right-adjusting blank padding */
 445:printf_P.c    **** 		if ((flags & (LADJUST|ZEROPAD)) == 0)
 777              	oc 1 450 0
 778 05f8 302018E2 		addne	r0, sp, #59
 779              	.LVL98:
 780 05fc 00208DE5 		movne	r1, #1
 781              		.loc 1 449 0
 782 0600 FFA003E2 		bne	.L167
 783              	.LVL99:
 784              		.loc 1 451 0
 446:printf_P.c    **** 			PAD_SP(width - fieldsz);
 785              	 #64
 786 0604 04309D05 		beq	.L137
 787 0608 03006A00 		.loc 1 452 0
 788              		mov	r3, #48
 789 060c 000CA001 	.LVL100:
 790 0610 400CA001 		strb	r3, [sp, #57]
 791 0614 FEFFFF0B 		.loc 1 453 0
 792              		strb	r4, [sp, #58]
 793              		.loc 1 454 0
 447:printf_P.c    **** 
 448:printf_P.c    **** 		/* prefix */
 449:printf_P.c    **** 		if (sign) {
 794              	sp, #57
 795 0618 3B30DDE5 		mov	r1, #2
 796 061c 000053E3 	.LVL101:
 450:printf_P.c    **** 			PRINT(&sign, 1);
 797              	67:
 798 0620 3B008D12 		bl	PRINT
 799              	.LVL102:
 800 0624 0110A013 	.L137:
 801              		.loc 1 458 0
 802 0628 0600001A 		ldr	r2, [sp, #0]
 803              		cmp	r2, #32
 451:printf_P.c    **** 		} else if (flags & HEXPREFIX) {
 804              	 459 0
 805 062c 400018E3 		ldreq	r3, [sp, #4]
 806 0630 0500000A 		rsbeq	r0, sl, r3
 452:printf_P.c    **** 			ox[0] = '0';
 807              	veq	r0, r0, asl #24
 808 0634 3030A0E3 		moveq	r0, r0, asr #24
 809              		bleq	PAD_0
 810 0638 3930CDE5 	.LVL103:
 453:printf_P.c    **** 			ox[1] = ch;
 811              	9:
 812 063c 3A40CDE5 		.loc 1 462 0
 454:printf_P.c    **** 			PRINT(ox, 2);
 813              	ov	r0, r7, asl #24
 814 0640 39008DE2 		mov	r0, r0, asr #24
 815 0644 0210A0E3 		bl	PAD_0
 816              	.LVL104:
 817              		.loc 1 465 0
 818 0648 FEFFFFEB 		mov	r1, r5, asl #24
 819              		mov	r0, r6
 820              		mov	r1, r1, asr #24
 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)
 821              	T
 822 064c 00209DE5 		.loc 1 468 0
 823 0650 200052E3 		tst	r8, #16
 459:printf_P.c    **** 			PAD_0(width - fieldsz);
 824              	q	.L168
 825 0654 04309D05 		.loc 1 469 0
 826 0658 03006A00 		ldr	r2, [sp, #4]
 827 065c 000CA001 		rsb	r0, sl, r2
 828 0660 400CA001 		mov	r0, r0, asl #24
 829 0664 FEFFFF0B 		mov	r0, r0, asr #24
 830              		bl	PAD_SP
 831              		b	.L168
 460:printf_P.c    **** 
 461:printf_P.c    **** 		/* leading zeroes from decimal precision */
 462:printf_P.c    **** 		PAD_0(dpad);
 832              	VL105:
 833 0668 070CA0E1 	.L72:
 834 066c 400CA0E1 		.loc 1 473 0
 835 0670 FEFFFFEB 		mov	r1, #1
 836              	.LVL106:
 463:printf_P.c    **** 
 464:printf_P.c    **** 		/* the string or number proper */
 465:printf_P.c    **** 		PRINT(cp, size);
 837              	r7, #0
 838 0674 051CA0E1 		add	r6, sp, #12
 839 0678 0600A0E1 		mov	r5, r1
 840 067c 411CA0E1 	.LVL107:
 841 0680 FEFFFFEB 		b	.L126
 466:printf_P.c    **** 
 467:printf_P.c    **** 		/* left-adjusting padding (always blank) */
 468:printf_P.c    **** 		if (flags & LADJUST)
 842              	08:
 843 0684 100018E3 	.L142:
 844 0688 8FFEFF0A 		add	sp, sp, #60
 469:printf_P.c    **** 			PAD_SP(width - fieldsz);
 845              	mfd	sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
 846 068c 04209DE5 		add	sp, sp, #16
 847 0690 02006AE0 		bx	lr
 848 0694 000CA0E1 	.LFE6:
 850 069c FEFFFFEB 		.section	.debug_frame,"",%progbits
 851 06a0 89FEFFEA 	.Lframe0:
 852              		.4byte	.LECIE0-.LSCIE0
 853              	.LSCIE0:
 854              		.4byte	0xffffffff
 470:printf_P.c    **** 	}
 471:printf_P.c    **** done:
 472:printf_P.c    **** 	va_end(ap);
 473:printf_P.c    **** }
 855              	
 856 06a4 0110A0E3 		.ascii	"\000"
 857              		.uleb128 0x1
 858 06a8 0070A0E3 		.sleb128 -4
 859 06ac 0C608DE2 		.byte	0xe
 860 06b0 0150A0E1 		.byte	0xc
 861              		.uleb128 0xd
 862 06b4 C5FFFFEA 		.uleb128 0x0
 863              		.align	2
 864              	.LECIE0:
 865 06b8 3CD08DE2 	.LSFDE0:
 866 06bc F04FBDE8 		.4byte	.LEFDE0-.LASFDE0
 867 06c0 10D08DE2 	.LASFDE0:
 868 06c4 1EFF2FE1 		.4byte	.Lframe0
 869              		.4byte	.LFB5
 870              		.4byte	.LFE5-.LFB5
 1002              		.4byte	.LFE5-.Ltext0
DEFINED SYMBOLS
                            *ABS*:00000000 printf_P.c
C:\DOKUME~1\root\LOKALE~1\Temp/ccovaaaa.s:13     .text:00000000 PAD_0
C:\DOKUME~1\root\LOKALE~1\Temp/ccovaaaa.s:20     .text:00000000 $a
C:\DOKUME~1\root\LOKALE~1\Temp/ccovaaaa.s:47     .text:0000002c PAD_SP
C:\DOKUME~1\root\LOKALE~1\Temp/ccovaaaa.s:80     .text:00000058 PRINTP
C:\DOKUME~1\root\LOKALE~1\Temp/ccovaaaa.s:112    .text:00000084 PRINT
C:\DOKUME~1\root\LOKALE~1\Temp/ccovaaaa.s:146    .text:000000b0 _printf_P

UNDEFINED SYMBOLS
uart_sendchar
uart0Putch
__umodsi3
__udivsi3
memchr
strlen

⌨️ 快捷键说明

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