📄 ultrasound.lst
字号:
348 0216 90E0 ldi r25,hi8(150)
349 0218 0E94 0000 call delay_nus
350 .LM39:
351 021c BB98 cbi 55-0x20,3
352 .LM40:
353 021e 86E9 ldi r24,lo8(150)
354 0220 90E0 ldi r25,hi8(150)
355 0222 0E94 0000 call delay_nus
356 .LM41:
357 0226 8AB7 in r24,90-0x20
358 0228 8064 ori r24,lo8(64)
359 022a 8ABF out 90-0x20,r24
360 022c 8BB7 in r24,91-0x20
361 022e 8064 ori r24,lo8(64)
362 0230 8BBF out 91-0x20,r24
363 .L19:
364 .LM42:
365 0232 8091 0000 lds r24,Ultrasound_TimeOut_Flag
366 0236 8823 tst r24
367 0238 01F4 brne .L20
368 023a 8091 0000 lds r24,Ultrasound_Receive_Flag
369 023e 8823 tst r24
370 0240 01F0 breq .L19
371 .L20:
372 .LM43:
373 0242 8091 0000 lds r24,Ultrasound_TimeOut_Flag
374 0246 8823 tst r24
375 0248 01F0 breq .L22
376 .LM44:
377 024a 1092 0000 sts Ultrasound_TimeOut_Flag,__zero_reg__
378 .LM45:
379 024e 8CE2 ldi r24,lo8(300)
380 0250 91E0 ldi r25,hi8(300)
381 0252 0E94 0000 call delay_nms
382 0256 C0E0 ldi r28,lo8(0)
383 0258 D0E0 ldi r29,hi8(0)
384 .LVL14:
385 025a 00C0 rjmp .L24
386 .LVL15:
387 .L22:
388 .LM46:
389 025c 1092 0000 sts Ultrasound_Receive_Flag,__zero_reg__
390 .LM47:
391 0260 0E94 0000 call Calculate_Distant
392 0264 EC01 movw r28,r24
393 .LVL16:
394 .LM48:
395 0266 8CE2 ldi r24,lo8(300)
396 0268 91E0 ldi r25,hi8(300)
397 026a 0E94 0000 call delay_nms
398 .L24:
399 .LM49:
400 026e CE01 movw r24,r28
401 /* epilogue: frame size=0 */
402 0270 DF91 pop r29
403 0272 CF91 pop r28
404 0274 0895 ret
405 /* epilogue end (size=3) */
406 /* function GetImmediateDistance size 62 (57) */
407 .LFE9:
409 .data
410 .LC0:
411 0000 0A45 7272 .string "\nError Occured!!! Too Far Or Too Close 650mm >= Distance >= 50mm"
411 6F72 204F
411 6363 7572
411 6564 2121
411 2120 546F
412 .LC1:
413 0041 0A43 7572 .string "\nCurrent Valuable Distance: %d mm"
413 7265 6E74
413 2056 616C
413 7561 626C
413 6520 4469
414 .text
415 .global GetValuableDistant
417 GetValuableDistant:
418 .LFB10:
419 .LM50:
420 /* prologue: frame size=10 */
421 0276 BF92 push r11
422 0278 CF92 push r12
423 027a DF92 push r13
424 027c EF92 push r14
425 027e FF92 push r15
426 0280 0F93 push r16
427 0282 1F93 push r17
428 0284 CF93 push r28
429 0286 DF93 push r29
430 0288 CDB7 in r28,__SP_L__
431 028a DEB7 in r29,__SP_H__
432 028c 2A97 sbiw r28,10
433 028e 0FB6 in __tmp_reg__,__SREG__
434 0290 F894 cli
435 0292 DEBF out __SP_H__,r29
436 0294 0FBE out __SREG__,__tmp_reg__
437 0296 CDBF out __SP_L__,r28
438 /* prologue end (size=17) */
439 0298 6E01 movw r12,r28
440 029a 0894 sec
441 029c C11C adc r12,__zero_reg__
442 029e D11C adc r13,__zero_reg__
443 02a0 7601 movw r14,r12
444 .LM51:
445 02a2 8E01 movw r16,r28
446 02a4 055F subi r16,lo8(-(11))
447 02a6 1F4F sbci r17,hi8(-(11))
448 .L28:
449 .LM52:
450 02a8 0E94 0000 call GetImmediateDistance
451 02ac F701 movw r30,r14
452 02ae 8193 st Z+,r24
453 02b0 9193 st Z+,r25
454 02b2 7F01 movw r14,r30
455 .LM53:
456 02b4 E017 cp r30,r16
457 02b6 F107 cpc r31,r17
458 02b8 01F4 brne .L28
459 02ba F601 movw r30,r12
460 02bc 10E0 ldi r17,lo8(0)
461 .LVL17:
462 02be 00E0 ldi r16,lo8(0)
463 .LVL18:
464 02c0 BB24 clr r11
465 .LVL19:
466 .L30:
467 .LM54:
468 02c2 6081 ld r22,Z
469 02c4 7181 ldd r23,Z+1
470 02c6 9B01 movw r18,r22
471 02c8 40E0 ldi r20,lo8(0)
472 02ca 50E0 ldi r21,hi8(0)
473 02cc 8091 0000 lds r24,Valuable_Distance
474 02d0 9091 0000 lds r25,(Valuable_Distance)+1
475 02d4 A091 0000 lds r26,(Valuable_Distance)+2
476 02d8 B091 0000 lds r27,(Valuable_Distance)+3
477 02dc 8217 cp r24,r18
478 02de 9307 cpc r25,r19
479 02e0 A407 cpc r26,r20
480 02e2 B507 cpc r27,r21
481 02e4 00F4 brsh .L31
482 .LM55:
483 02e6 1F5F subi r17,lo8(-(1))
484 .L31:
485 .LM56:
486 02e8 8091 0000 lds r24,Valuable_Distance
487 02ec 9091 0000 lds r25,(Valuable_Distance)+1
488 02f0 A091 0000 lds r26,(Valuable_Distance)+2
489 02f4 B091 0000 lds r27,(Valuable_Distance)+3
490 02f8 2817 cp r18,r24
491 02fa 3907 cpc r19,r25
492 02fc 4A07 cpc r20,r26
493 02fe 5B07 cpc r21,r27
494 0300 00F4 brsh .L33
495 .LM57:
496 0302 0F5F subi r16,lo8(-(1))
497 .L33:
498 .LM58:
499 0304 6253 subi r22,lo8(-(-50))
500 0306 7040 sbci r23,hi8(-(-50))
501 0308 6955 subi r22,lo8(601)
502 030a 7240 sbci r23,hi8(601)
503 030c 00F0 brlo .L35
504 030e BB24 clr r11
505 0310 B394 inc r11
506 .L35:
507 0312 3296 adiw r30,2
508 .LM59:
509 0314 EE15 cp r30,r14
510 0316 FF05 cpc r31,r15
511 0318 01F4 brne .L30
512 .LM60:
513 031a BB20 tst r11
514 031c 01F0 breq .+2
515 031e 00C0 rjmp .L38
516 .LM61:
517 0320 1530 cpi r17,lo8(5)
518 0322 01F0 breq .L40
519 0324 0530 cpi r16,lo8(5)
520 0326 01F0 breq .+2
521 0328 00C0 rjmp .L42
522 .L40:
523 .LM62:
524 032a 1092 0000 sts Valuable_Distance,__zero_reg__
525 032e 1092 0000 sts (Valuable_Distance)+1,__zero_reg__
526 0332 1092 0000 sts (Valuable_Distance)+2,__zero_reg__
527 0336 1092 0000 sts (Valuable_Distance)+3,__zero_reg__
528 .L43:
529 .LM63:
530 033a 2091 0000 lds r18,Valuable_Distance
531 033e 3091 0000 lds r19,(Valuable_Distance)+1
532 0342 4091 0000 lds r20,(Valuable_Distance)+2
533 0346 5091 0000 lds r21,(Valuable_Distance)+3
534 034a F601 movw r30,r12
535 034c 8191 ld r24,Z+
536 034e 9191 ld r25,Z+
537 0350 6F01 movw r12,r30
538 0352 A0E0 ldi r26,lo8(0)
539 0354 B0E0 ldi r27,hi8(0)
540 0356 820F add r24,r18
541 0358 931F adc r25,r19
542 035a A41F adc r26,r20
543 035c B51F adc r27,r21
544 035e 8093 0000 sts Valuable_Distance,r24
545 0362 9093 0000 sts (Valuable_Distance)+1,r25
546 0366 A093 0000 sts (Valuable_Distance)+2,r26
547 036a B093 0000 sts (Valuable_Distance)+3,r27
548 .LM64:
549 036e EE15 cp r30,r14
550 0370 FF05 cpc r31,r15
551 0372 01F4 brne .L43
552 .LM65:
553 0374 6091 0000 lds r22,Valuable_Distance
554 0378 7091 0000 lds r23,(Valuable_Distance)+1
555 037c 8091 0000 lds r24,(Valuable_Distance)+2
556 0380 9091 0000 lds r25,(Valuable_Distance)+3
557 0384 25E0 ldi r18,lo8(5)
558 0386 30E0 ldi r19,hi8(5)
559 0388 40E0 ldi r20,hlo8(5)
560 038a 50E0 ldi r21,hhi8(5)
561 038c 0E94 0000 call __udivmodsi4
562 0390 2093 0000 sts Valuable_Distance,r18
563 0394 3093 0000 sts (Valuable_Distance)+1,r19
564 0398 4093 0000 sts (Valuable_Distance)+2,r20
565 039c 5093 0000 sts (Valuable_Distance)+3,r21
566 03a0 00C0 rjmp .L42
567 .L38:
568 .LM66:
569 03a2 80E0 ldi r24,lo8(.LC0)
570 03a4 90E0 ldi r25,hi8(.LC0)
571 03a6 9F93 push r25
572 03a8 8F93 push r24
573 03aa 0E94 0000 call printf
574 03ae 0F90 pop __tmp_reg__
575 03b0 0F90 pop __tmp_reg__
576 03b2 00C0 rjmp .L45
577 .L42:
578 .LM67:
579 03b4 8091 0000 lds r24,Valuable_Distance
580 03b8 9091 0000 lds r25,(Valuable_Distance)+1
581 03bc A091 0000 lds r26,(Valuable_Distance)+2
582 03c0 B091 0000 lds r27,(Valuable_Distance)+3
583 03c4 BF93 push r27
584 03c6 AF93 push r26
585 03c8 9F93 push r25
586 03ca 8F93 push r24
587 03cc 80E0 ldi r24,lo8(.LC1)
588 03ce 90E0 ldi r25,hi8(.LC1)
589 03d0 9F93 push r25
590 03d2 8F93 push r24
591 03d4 0E94 0000 call printf
592 03d8 8DB7 in r24,__SP_L__
593 03da 9EB7 in r25,__SP_H__
594 03dc 0696 adiw r24,6
595 03de 0FB6 in __tmp_reg__,__SREG__
596 03e0 F894 cli
597 03e2 9EBF out __SP_H__,r25
598 03e4 0FBE out __SREG__,__tmp_reg__
599 03e6 8DBF out __SP_L__,r24
600 .L45:
601 .LM68:
602 03e8 8091 0000 lds r24,Valuable_Distance
603 03ec 9091 0000 lds r25,(Valuable_Distance)+1
604 03f0 A091 0000 lds r26,(Valuable_Distance)+2
605 03f4 B091 0000 lds r27,(Valuable_Distance)+3
606 /* epilogue: frame size=10 */
607 03f8 2A96 adiw r28,10
608 03fa 0FB6 in __tmp_reg__,__SREG__
609 03fc F894 cli
610 03fe DEBF out __SP_H__,r29
611 0400 0FBE out __SREG__,__tmp_reg__
612 0402 CDBF out __SP_L__,r28
613 0404 DF91 pop r29
614 0406 CF91 pop r28
615 0408 1F91 pop r17
616 040a 0F91 pop r16
617 040c FF90 pop r15
618 040e EF90 pop r14
619 0410 DF90 pop r13
620 0412 CF90 pop r12
621 0414 BF90 pop r11
622 0416 0895 ret
623 /* epilogue end (size=16) */
624 /* function GetValuableDistant size 210 (177) */
625 .LFE10:
627 .global Temp_Reflash_at
628 .global Temp_Reflash_at
629 .section .bss
632 Temp_Reflash_at:
633 0000 0000 .skip 2,0
634 .comm Valuable_Distance,4,1
635 .comm Valuable_Speed,4,1
636 .comm Ultrasound_TimeOut_Flag,1,1
637 .comm Ultrasound_Receive_Flag,1,1
638 .comm Timer1_Counter_H,1,1
639 .comm Timer1_Counter_L,1,1
704 .Letext0:
DEFINED SYMBOLS
*ABS*:00000000 Ultrasound.c
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT2pKL0.s:2 *ABS*:0000003f __SREG__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT2pKL0.s:3 *ABS*:0000003e __SP_H__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT2pKL0.s:4 *ABS*:0000003d __SP_L__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT2pKL0.s:5 *ABS*:00000000 __tmp_reg__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT2pKL0.s:6 *ABS*:00000001 __zero_reg__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT2pKL0.s:19 .text:00000000 __vector_1
*COM*:00000001 Timer1_Counter_L
*COM*:00000001 Timer1_Counter_H
*COM*:00000001 Ultrasound_Receive_Flag
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT2pKL0.s:63 .text:0000003a __vector_6
*COM*:00000001 Ultrasound_TimeOut_Flag
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT2pKL0.s:101 .text:00000068 GetUltrasoundSpeed
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT2pKL0.s:632 .bss:00000000 Temp_Reflash_at
*COM*:00000004 Valuable_Speed
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT2pKL0.s:191 .text:00000118 Calculate_Distant
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT2pKL0.s:326 .text:000001fa GetImmediateDistance
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccT2pKL0.s:417 .text:00000276 GetValuableDistant
*COM*:00000004 Valuable_Distance
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
GetTemperature
__nesf2
__mulsf3
__addsf3
__fixunssfsi
__mulsi3
__udivmodsi4
delay_nus
delay_nms
printf
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -