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

📄 lcdprintf.lst

📁 Working with DS1820 temperature sensor on SAM7 mC. Watch for timings!
💻 LST
📖 第 1 页 / 共 3 页
字号:
 451              		.loc 1 182 0 452 0256 3B1C     		mov	r3, r7 453 0258 283B     		sub	r3, r3, #40 454 025a 1968     		ldr	r1, [r3] 455 025c 0A1D     		add	r2, r1, #4 456 025e 3B1C     		mov	r3, r7 457 0260 283B     		sub	r3, r3, #40 458 0262 1A60     		str	r2, [r3] 459 0264 0B1C     		mov	r3, r1 460 0266 3A1C     		mov	r2, r7 461 0268 083A     		sub	r2, r2, #8 462 026a 1B68     		ldr	r3, [r3] 463 026c 1360     		str	r3, [r2] 464              	.L38: 183:LCD/lcdprintf.c **** #else
 184:LCD/lcdprintf.c ****         s_val = va_arg(ap,int);
 185:LCD/lcdprintf.c **** #endif
 186:LCD/lcdprintf.c **** 
 187:LCD/lcdprintf.c ****         if(s_val < 0) //Value negativ ?
 465              		.loc 1 187 0 466 026e 3B1C     		mov	r3, r7 467 0270 083B     		sub	r3, r3, #8 468 0272 1B68     		ldr	r3, [r3] 469 0274 002B     		cmp	r3, #0 470 0276 09DA     		bge	.L39 188:LCD/lcdprintf.c ****          {
 189:LCD/lcdprintf.c ****           s_val = - s_val; //Make it positiv
 471              		.loc 1 189 0 472 0278 3A1C     		mov	r2, r7 473 027a 083A     		sub	r2, r2, #8 474 027c 3B1C     		mov	r3, r7 475 027e 083B     		sub	r3, r3, #8 476 0280 1B68     		ldr	r3, [r3] 477 0282 5B42     		neg	r3, r3 478 0284 1360     		str	r3, [r2] 190:LCD/lcdprintf.c ****           lcdmyputchar('-');    //Output sign
 479              		.loc 1 190 0 480 0286 2D20     		mov	r0, #45 481 0288 FFF7FEFF 		bl	lcdmyputchar 482              	.L39: 191:LCD/lcdprintf.c ****          }
 192:LCD/lcdprintf.c **** 
 193:LCD/lcdprintf.c ****         u_val = (unsigned long)s_val;
 483              		.loc 1 193 0 484 028c 3B1C     		mov	r3, r7 485 028e 0C3B     		sub	r3, r3, #12 486 0290 3A1C     		mov	r2, r7 487 0292 083A     		sub	r2, r2, #8 488 0294 1268     		ldr	r2, [r2] 489 0296 1A60     		str	r2, [r3] 490 0298 1DE0     		b	.L41 491              	.L34: 194:LCD/lcdprintf.c ****        }
 195:LCD/lcdprintf.c ****       else //Unsigned types
 196:LCD/lcdprintf.c ****        {
 197:LCD/lcdprintf.c **** #ifdef USE_LONG
 198:LCD/lcdprintf.c ****         if(islong) { u_val = va_arg(ap,unsigned long); }
 492              		.loc 1 198 0 493 029a 3B1C     		mov	r3, r7 494 029c 0D3B     		sub	r3, r3, #13 495 029e 1B78     		ldrb	r3, [r3] 496 02a0 002B     		cmp	r3, #0 497 02a2 0CD0     		beq	.L42 498 02a4 3B1C     		mov	r3, r7 499 02a6 283B     		sub	r3, r3, #40 500 02a8 1968     		ldr	r1, [r3] 501 02aa 0A1D     		add	r2, r1, #4 502 02ac 3B1C     		mov	r3, r7 503 02ae 283B     		sub	r3, r3, #40 504 02b0 1A60     		str	r2, [r3] 505 02b2 0B1C     		mov	r3, r1 506 02b4 3A1C     		mov	r2, r7 507 02b6 0C3A     		sub	r2, r2, #12 508 02b8 1B68     		ldr	r3, [r3] 509 02ba 1360     		str	r3, [r2] 510 02bc 0BE0     		b	.L41 511              	.L42: 199:LCD/lcdprintf.c ****         else { u_val = va_arg(ap,unsigned int); }
 512              		.loc 1 199 0 513 02be 3B1C     		mov	r3, r7 514 02c0 283B     		sub	r3, r3, #40 515 02c2 1968     		ldr	r1, [r3] 516 02c4 0A1D     		add	r2, r1, #4 517 02c6 3B1C     		mov	r3, r7 518 02c8 283B     		sub	r3, r3, #40 519 02ca 1A60     		str	r2, [r3] 520 02cc 0B1C     		mov	r3, r1 521 02ce 3A1C     		mov	r2, r7 522 02d0 0C3A     		sub	r2, r2, #12 523 02d2 1B68     		ldr	r3, [r3] 524 02d4 1360     		str	r3, [r2] 525              	.L41: 200:LCD/lcdprintf.c **** #else
 201:LCD/lcdprintf.c ****         u_val = va_arg(ap,unsigned int);
 202:LCD/lcdprintf.c **** #endif
 203:LCD/lcdprintf.c ****        }
 204:LCD/lcdprintf.c ****     
 205:LCD/lcdprintf.c ****       ptr = scratch + SCRATCH;
 526              		.loc 1 205 0 527 02d6 3A1C     		mov	r2, r7 528 02d8 143A     		sub	r2, r2, #20 529 02da 3B1C     		mov	r3, r7 530 02dc 233B     		sub	r3, r3, #35 531 02de 0C33     		add	r3, r3, #12 532 02e0 1360     		str	r3, [r2] 206:LCD/lcdprintf.c ****       *--ptr = 0;
 533              		.loc 1 206 0 534 02e2 3A1C     		mov	r2, r7 535 02e4 143A     		sub	r2, r2, #20 536 02e6 3B1C     		mov	r3, r7 537 02e8 143B     		sub	r3, r3, #20 538 02ea 1B68     		ldr	r3, [r3] 539 02ec 013B     		sub	r3, r3, #1 540 02ee 1360     		str	r3, [r2] 541 02f0 3B1C     		mov	r3, r7 542 02f2 143B     		sub	r3, r3, #20 543 02f4 1A68     		ldr	r2, [r3] 544 02f6 0023     		mov	r3, #0 545 02f8 1370     		strb	r3, [r2] 546              	.L44: 547              	.LBB2: 207:LCD/lcdprintf.c ****       do
 208:LCD/lcdprintf.c ****        {
 209:LCD/lcdprintf.c ****         char ch = u_val % base + '0';
 548              		.loc 1 209 0 549 02fa 3B1C     		mov	r3, r7 550 02fc 163B     		sub	r3, r3, #22 551 02fe 1A88     		ldrh	r2, [r3] 552 0300 3B1C     		mov	r3, r7 553 0302 0C3B     		sub	r3, r3, #12 554 0304 1B68     		ldr	r3, [r3] 555 0306 181C     		mov	r0, r3 556 0308 111C     		mov	r1, r2 557 030a FFF7FEFF 		bl	__umodsi3 558 030e 031C     		mov	r3, r0 559 0310 1B06     		lsl	r3, r3, #24 560 0312 1B0E     		lsr	r3, r3, #24 561 0314 7A1E     		sub	r2, r7, #1 562 0316 3033     		add	r3, r3, #48 563 0318 1370     		strb	r3, [r2] 210:LCD/lcdprintf.c **** #ifdef USE_HEX
 211:LCD/lcdprintf.c ****         if (ch > '9')
 564              		.loc 1 211 0 565 031a 7B1E     		sub	r3, r7, #1 566 031c 1B78     		ldrb	r3, [r3] 567 031e 392B     		cmp	r3, #57 568 0320 0DD9     		bls	.L45 212:LCD/lcdprintf.c ****          {
 213:LCD/lcdprintf.c ****           ch += 'a' - '9' - 1;
 569              		.loc 1 213 0 570 0322 7B1E     		sub	r3, r7, #1 571 0324 1B78     		ldrb	r3, [r3] 572 0326 2733     		add	r3, r3, #39 573 0328 1B06     		lsl	r3, r3, #24 574 032a 1B0E     		lsr	r3, r3, #24 575 032c 7A1E     		sub	r2, r7, #1 576 032e 1370     		strb	r3, [r2] 214:LCD/lcdprintf.c **** #ifdef USE_UPPERHEX
 215:LCD/lcdprintf.c ****           ch-=0x20;
 577              		.loc 1 215 0 578 0330 7B1E     		sub	r3, r7, #1 579 0332 1B78     		ldrb	r3, [r3] 580 0334 203B     		sub	r3, r3, #32 581 0336 1B06     		lsl	r3, r3, #24 582 0338 1B0E     		lsr	r3, r3, #24 583 033a 7A1E     		sub	r2, r7, #1 584 033c 1370     		strb	r3, [r2] 585              	.L45: 216:LCD/lcdprintf.c **** #endif
 217:LCD/lcdprintf.c ****          }
 218:LCD/lcdprintf.c **** #endif          
 219:LCD/lcdprintf.c ****         *--ptr = ch;
 586              		.loc 1 219 0 587 033e 3A1C     		mov	r2, r7 588 0340 143A     		sub	r2, r2, #20 589 0342 3B1C     		mov	r3, r7 590 0344 143B     		sub	r3, r3, #20 591 0346 1B68     		ldr	r3, [r3] 592 0348 013B     		sub	r3, r3, #1 593 034a 1360     		str	r3, [r2] 594 034c 3B1C     		mov	r3, r7 595 034e 143B     		sub	r3, r3, #20 596 0350 1A68     		ldr	r2, [r3] 597 0352 7B1E     		sub	r3, r7, #1 598 0354 1B78     		ldrb	r3, [r3] 599 0356 1370     		strb	r3, [r2] 220:LCD/lcdprintf.c ****         u_val /= base;
 600              		.loc 1 220 0 601 0358 3B1C     		mov	r3, r7 602 035a 163B     		sub	r3, r3, #22 603 035c 1A88     		ldrh	r2, [r3] 604 035e 3C1C     		mov	r4, r7 605 0360 0C3C     		sub	r4, r4, #12 606 0362 3B1C     		mov	r3, r7 607 0364 0C3B     		sub	r3, r3, #12 608 0366 1868     		ldr	r0, [r3] 609 0368 111C     		mov	r1, r2 610 036a FFF7FEFF 		bl	__udivsi3 611 036e 031C     		mov	r3, r0 612 0370 2360     		str	r3, [r4] 221:LCD/lcdprintf.c **** 
 222:LCD/lcdprintf.c **** #ifdef PADDING
 223:LCD/lcdprintf.c ****         if(width) width--; //calculate number of padding chars
 613              		.loc 1 223 0 614 0372 BB1E     		sub	r3, r7, #2 615 0374 1B78     		ldrb	r3, [r3] 616 0376 002B     		cmp	r3, #0 617 0378 04D0     		beq	.L47 618 037a BA1E     		sub	r2, r7, #2 619 037c BB1E     		sub	r3, r7, #2 620 037e 1B78     		ldrb	r3, [r3] 621 0380 013B     		sub	r3, r3, #1 622 0382 1370     		strb	r3, [r2] 623              	.L47: 624              	.LBE2: 224:LCD/lcdprintf.c **** #endif
 225:LCD/lcdprintf.c ****       } while (u_val);
 625              		.loc 1 225 0 626 0384 3B1C     		mov	r3, r7 627 0386 0C3B     		sub	r3, r3, #12 628 0388 1B68     		ldr	r3, [r3] 629 038a 002B     		cmp	r3, #0 630 038c B5D1     		bne	.L44 226:LCD/lcdprintf.c **** 
 227:LCD/lcdprintf.c **** #ifdef PADDING
 228:LCD/lcdprintf.c ****      while(width--) *--ptr = fill; //insert padding chars		      
 631              		.loc 1 228 0 632 038e 0CE0     		b	.L50 633              	.L51: 634 0390 3A1C     		mov	r2, r7 635 0392 143A     		sub	r2, r2, #20 636 0394 3B1C     		mov	r3, r7 637 0396 143B     		sub	r3, r3, #20 638 0398 1B68     		ldr	r3, [r3] 639 039a 013B     		sub	r3, r3, #1 640 039c 1360     		str	r3, [r2] 641 039e 3B1C     		mov	r3, r7 642 03a0 143B     		sub	r3, r3, #20 643 03a2 1A68     		ldr	r2, [r3] 644 03a4 FB1E     		sub	r3, r7, #3 645 03a6 1B78     		ldrb	r3, [r3] 646 03a8 1370     		strb	r3, [r2] 647              	.L50: 648 03aa BA1E     		sub	r2, r7, #2 649 03ac BB1E     		sub	r3, r7, #2 650 03ae 1B78     		ldrb	r3, [r3] 651 03b0 013B     		sub	r3, r3, #1 652 03b2 1370     		strb	r3, [r2] 653 03b4 BB1E     		sub	r3, r7, #2 654 03b6 1B78     		ldrb	r3, [r3] 655 03b8 FF2B     		cmp	r3, #255 656 03ba E9D1     		bne	.L51 229:LCD/lcdprintf.c **** #endif
 230:LCD/lcdprintf.c **** 
 231:LCD/lcdprintf.c ****       while(*ptr) { lcdmyputchar(*ptr); ptr++; }
 657              		.loc 1 231 0 658 03bc 0DE0     		b	.L53 659              	.L54: 660 03be 3B1C     		mov	r3, r7 661 03c0 143B     		sub	r3, r3, #20 662 03c2 1B68     		ldr	r3, [r3] 663 03c4 1B78     		ldrb	r3, [r3] 664 03c6 181C     		mov	r0, r3 665 03c8 FFF7FEFF 		bl	lcdmyputchar 666 03cc 3A1C     		mov	r2, r7 667 03ce 143A     		sub	r2, r2, #20 668 03d0 3B1C     		mov	r3, r7 669 03d2 143B     		sub	r3, r3, #20 670 03d4 1B68     		ldr	r3, [r3] 671 03d6 0133     		add	r3, r3, #1 672 03d8 1360     		str	r3, [r2] 673              	.L53: 674 03da 3B1C     		mov	r3, r7 675 03dc 143B     		sub	r3, r3, #20 676 03de 1B68     		ldr	r3, [r3] 677 03e0 1B78     		ldrb	r3, [r3] 678 03e2 002B     		cmp	r3, #0 679 03e4 EBD1     		bne	.L54 232:LCD/lcdprintf.c ****     }
 233:LCD/lcdprintf.c ****   }
 680              		.loc 1 233 0 681 03e6 49E6     		b	.L8 682              	.L55: 234:LCD/lcdprintf.c **** }
 683              		.loc 1 234 0 684 03e8 BD46     		mov	sp, r7 685              		@ sp needed for prologue 686 03ea 90BC     		pop	{r4, r7} 687 03ec 08BC     		pop	{r3} 688 03ee 04B0     		add	sp, sp, #16 689 03f0 1847     		bx	r3 690              	.L58: 691 03f2 0000     		.align	2 692              	.L57: 693 03f4 00000000 		.word	.L28 694              	.LFE291: 759              	.Letext0:DEFINED SYMBOLS                            *ABS*:00000000 lcdprintf.c/cygdrive/c/DOCUME~1/Dima/LOCALS~1/Temp/cc2zXpXS.s:1      .text:00000000 $t/cygdrive/c/DOCUME~1/Dima/LOCALS~1/Temp/cc2zXpXS.s:15     .text:00000000 lcdmyputchar/cygdrive/c/DOCUME~1/Dima/LOCALS~1/Temp/cc2zXpXS.s:59     .text:00000030 lcdprintf/cygdrive/c/DOCUME~1/Dima/LOCALS~1/Temp/cc2zXpXS.s:293    .rodata:00000000 $d/cygdrive/c/DOCUME~1/Dima/LOCALS~1/Temp/cc2zXpXS.s:693    .text:000003f4 $dUNDEFINED SYMBOLSLCDSendCommandLCDSendChar__umodsi3__udivsi3

⌨️ 快捷键说明

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