📄 shiyan5.lst
字号:
446 __vector_30:
68:shiyan5.c **** SIGNAL(SIG_UART1_RECV)//当RXCIE1=1,SREG=0X80,接收结束时有RXC1也为1
69:shiyan5.c **** {
448 .LM34:
449 /* prologue: frame size=0 */
450 01a0 1F92 push __zero_reg__
451 01a2 0F92 push __tmp_reg__
452 01a4 0FB6 in __tmp_reg__,__SREG__
453 01a6 0F92 push __tmp_reg__
454 01a8 1124 clr __zero_reg__
455 01aa 8F93 push r24
456 01ac 9F93 push r25
457 01ae EF93 push r30
458 01b0 FF93 push r31
459 01b2 CF93 push r28
460 01b4 DF93 push r29
461 01b6 CDB7 in r28,__SP_L__
462 01b8 DEB7 in r29,__SP_H__
463 /* prologue end (size=13) */
70:shiyan5.c **** cli();
465 .LM35:
466 /* #APP */
467 01ba F894 cli
71:shiyan5.c **** global_uart1_data=UDR1;
469 .LM36:
470 /* #NOAPP */
471 01bc 8091 9C00 lds r24,156
472 01c0 8093 0000 sts global_uart1_data,r24
72:shiyan5.c **** data_receive[ii]=global_uart1_data;
474 .LM37:
475 01c4 8091 0000 lds r24,ii
476 01c8 9091 0000 lds r25,(ii)+1
477 01cc FC01 movw r30,r24
478 01ce E050 subi r30,lo8(-(data_receive))
479 01d0 F040 sbci r31,hi8(-(data_receive))
480 01d2 8091 0000 lds r24,global_uart1_data
481 01d6 8083 st Z,r24
73:shiyan5.c **** ii++;
483 .LM38:
484 01d8 8091 0000 lds r24,ii
485 01dc 9091 0000 lds r25,(ii)+1
486 01e0 0196 adiw r24,1
487 01e2 9093 0000 sts (ii)+1,r25
488 01e6 8093 0000 sts ii,r24
74:shiyan5.c **** if(ii>14)
490 .LM39:
491 01ea 8091 0000 lds r24,ii
492 01ee 9091 0000 lds r25,(ii)+1
493 01f2 8F30 cpi r24,15
494 01f4 9105 cpc r25,__zero_reg__
495 01f6 24F0 brlt .L31
75:shiyan5.c **** {
76:shiyan5.c **** ii=0;
497 .LM40:
498 01f8 1092 0000 sts (ii)+1,__zero_reg__
499 01fc 1092 0000 sts ii,__zero_reg__
500 .L31:
77:shiyan5.c **** }
78:shiyan5.c **** sei();
502 .LM41:
503 /* #APP */
504 0200 7894 sei
79:shiyan5.c **** }
506 .LM42:
507 /* #NOAPP */
508 /* epilogue: frame size=0 */
509 0202 DF91 pop r29
510 0204 CF91 pop r28
511 0206 FF91 pop r31
512 0208 EF91 pop r30
513 020a 9F91 pop r25
514 020c 8F91 pop r24
515 020e 0F90 pop __tmp_reg__
516 0210 0FBE out __SREG__,__tmp_reg__
517 0212 0F90 pop __tmp_reg__
518 0214 1F90 pop __zero_reg__
519 0216 1895 reti
520 /* epilogue end (size=11) */
521 /* function __vector_30 size 62 (38) */
523 .Lscope5:
528 .global lrc_check
530 lrc_check:
80:shiyan5.c **** int lrc_check(char *p,int length)
81:shiyan5.c **** {
532 .LM43:
533 /* prologue: frame size=12 */
534 0218 CF93 push r28
535 021a DF93 push r29
536 021c CDB7 in r28,__SP_L__
537 021e DEB7 in r29,__SP_H__
538 0220 2C97 sbiw r28,12
539 0222 0FB6 in __tmp_reg__,__SREG__
540 0224 F894 cli
541 0226 DEBF out __SP_H__,r29
542 0228 0FBE out __SREG__,__tmp_reg__
543 022a CDBF out __SP_L__,r28
544 /* prologue end (size=10) */
545 022c 8983 std Y+1,r24
546 022e 9A83 std Y+2,r25
547 0230 6B83 std Y+3,r22
548 0232 7C83 std Y+4,r23
82:shiyan5.c **** int lrc=0;
550 .LM44:
551 .LBB4:
552 0234 1D82 std Y+5,__zero_reg__
553 0236 1E82 std Y+6,__zero_reg__
83:shiyan5.c **** int i=0;
555 .LM45:
556 0238 1F82 std Y+7,__zero_reg__
557 023a 1886 std Y+8,__zero_reg__
84:shiyan5.c **** for(i=1;i<=length;i++)
559 .LM46:
560 023c 81E0 ldi r24,lo8(1)
561 023e 90E0 ldi r25,hi8(1)
562 0240 8F83 std Y+7,r24
563 0242 9887 std Y+8,r25
564 .L33:
565 0244 2F81 ldd r18,Y+7
566 0246 3885 ldd r19,Y+8
567 0248 8B81 ldd r24,Y+3
568 024a 9C81 ldd r25,Y+4
569 024c 8217 cp r24,r18
570 024e 9307 cpc r25,r19
571 0250 0CF4 brge .L36
572 0252 16C0 rjmp .L34
573 .L36:
85:shiyan5.c **** lrc=lrc+*(p+i);
575 .LM47:
576 0254 2981 ldd r18,Y+1
577 0256 3A81 ldd r19,Y+2
578 0258 8F81 ldd r24,Y+7
579 025a 9885 ldd r25,Y+8
580 025c F901 movw r30,r18
581 025e E80F add r30,r24
582 0260 F91F adc r31,r25
583 0262 8081 ld r24,Z
584 0264 282F mov r18,r24
585 0266 3327 clr r19
586 0268 8D81 ldd r24,Y+5
587 026a 9E81 ldd r25,Y+6
588 026c 820F add r24,r18
589 026e 931F adc r25,r19
590 0270 8D83 std Y+5,r24
591 0272 9E83 std Y+6,r25
593 .LM48:
594 0274 8F81 ldd r24,Y+7
595 0276 9885 ldd r25,Y+8
596 0278 0196 adiw r24,1
597 027a 8F83 std Y+7,r24
598 027c 9887 std Y+8,r25
599 027e E2CF rjmp .L33
600 .L34:
86:shiyan5.c **** lrc=lrc%256;
602 .LM49:
603 0280 2D81 ldd r18,Y+5
604 0282 3E81 ldd r19,Y+6
605 0284 2987 std Y+9,r18
606 0286 3A87 std Y+10,r19
607 0288 4985 ldd r20,Y+9
608 028a 5A85 ldd r21,Y+10
609 028c 4B87 std Y+11,r20
610 028e 5C87 std Y+12,r21
611 0290 8B85 ldd r24,Y+11
612 0292 9C85 ldd r25,Y+12
613 0294 9923 tst r25
614 0296 34F4 brge .L37
615 0298 2B85 ldd r18,Y+11
616 029a 3C85 ldd r19,Y+12
617 029c 2150 subi r18,lo8(-(255))
618 029e 3F4F sbci r19,hi8(-(255))
619 02a0 2B87 std Y+11,r18
620 02a2 3C87 std Y+12,r19
621 .L37:
622 02a4 4B85 ldd r20,Y+11
623 02a6 5C85 ldd r21,Y+12
624 02a8 252F mov r18,r21
625 02aa 3327 clr r19
626 02ac 27FD sbrc r18,7
627 02ae 3A95 dec r19
628 02b0 80E0 ldi r24,lo8(256)
629 02b2 91E0 ldi r25,hi8(256)
630 02b4 289F mul r18,r24
631 02b6 A001 movw r20,r0
632 02b8 299F mul r18,r25
633 02ba 500D add r21,r0
634 02bc 389F mul r19,r24
635 02be 500D add r21,r0
636 02c0 1124 clr r1
637 02c2 CA01 movw r24,r20
638 02c4 2985 ldd r18,Y+9
639 02c6 3A85 ldd r19,Y+10
640 02c8 281B sub r18,r24
641 02ca 390B sbc r19,r25
642 02cc C901 movw r24,r18
643 02ce 8D83 std Y+5,r24
644 02d0 9E83 std Y+6,r25
87:shiyan5.c **** lrc=0xff-lrc;
646 .LM50:
647 02d2 2FEF ldi r18,lo8(255)
648 02d4 30E0 ldi r19,hi8(255)
649 02d6 8D81 ldd r24,Y+5
650 02d8 9E81 ldd r25,Y+6
651 02da 281B sub r18,r24
652 02dc 390B sbc r19,r25
653 02de C901 movw r24,r18
654 02e0 8D83 std Y+5,r24
655 02e2 9E83 std Y+6,r25
88:shiyan5.c **** lrc++;
657 .LM51:
658 02e4 8D81 ldd r24,Y+5
659 02e6 9E81 ldd r25,Y+6
660 02e8 0196 adiw r24,1
661 02ea 8D83 std Y+5,r24
662 02ec 9E83 std Y+6,r25
89:shiyan5.c **** return lrc;
664 .LM52:
665 02ee 8D81 ldd r24,Y+5
666 02f0 9E81 ldd r25,Y+6
90:shiyan5.c **** }
668 .LM53:
669 .LBE4:
670 /* epilogue: frame size=12 */
671 02f2 2C96 adiw r28,12
672 02f4 0FB6 in __tmp_reg__,__SREG__
673 02f6 F894 cli
674 02f8 DEBF out __SP_H__,r29
675 02fa 0FBE out __SREG__,__tmp_reg__
676 02fc CDBF out __SP_L__,r28
677 02fe DF91 pop r29
678 0300 CF91 pop r28
679 0302 0895 ret
680 /* epilogue end (size=9) */
681 /* function lrc_check size 118 (99) */
687 .Lscope6:
690 .global main
692 main:
91:shiyan5.c **** int main()
92:shiyan5.c **** { char *pointer;
694 .LM54:
695 /* prologue: frame size=7 */
696 0304 C0E0 ldi r28,lo8(__stack - 7)
697 0306 D0E0 ldi r29,hi8(__stack - 7)
698 0308 DEBF out __SP_H__,r29
699 030a CDBF out __SP_L__,r28
700 /* prologue end (size=4) */
93:shiyan5.c **** int i;
94:shiyan5.c **** char n;
95:shiyan5.c **** pointer=command_send;
702 .LM55:
703 .LBB5:
704 030c 80E0 ldi r24,lo8(command_send)
705 030e 90E0 ldi r25,hi8(command_send)
706 0310 8983 std Y+1,r24
707 0312 9A83 std Y+2,r25
96:shiyan5.c **** int lrc_check_value;
97:shiyan5.c **** sbi(DDRD,PD4);//配置CS485为输出
709 .LM56:
710 0314 8091 3100 lds r24,49
711 0318 8061 ori r24,lo8(16)
712 031a 8093 3100 sts 49,r24
98:shiyan5.c **** cbi(PORTD,PD4);//控制max485为接收
714 .LM57:
715 031e 8091 3200 lds r24,50
716 0322 8F7E andi r24,lo8(-17)
717 0324 8093 3200 sts 50,r24
99:shiyan5.c **** sei();
719 .LM58:
720 /* #APP */
721 0328 7894 sei
100:shiyan5.c **** usart1_init();
723 .LM59:
724 /* #NOAPP */
725 032a 0E94 0000 call usart1_init
101:shiyan5.c **** delay_ms(5);
727 .LM60:
728 032e 85E0 ldi r24,lo8(5)
729 0330 90E0 ldi r25,hi8(5)
730 0332 0E94 0000 call delay_ms
102:shiyan5.c **** lrc_check_value=lrc_check(command_send,12);
732 .LM61:
733 0336 6CE0 ldi r22,lo8(12)
734 0338 70E0 ldi r23,hi8(12)
735 033a 80E0 ldi r24,lo8(command_send)
736 033c 90E0 ldi r25,hi8(command_send)
737 033e 0E94 0000 call lrc_check
738 0342 8E83 std Y+6,r24
739 0344 9F83 std Y+7,r25
103:shiyan5.c **** for(i=0;i<=16;i++)
741 .LM62:
742 0346 1B82 std Y+3,__zero_reg__
743 0348 1C82 std Y+4,__zero_reg__
744 .L39:
745 034a 8B81 ldd r24,Y+3
746 034c 9C81 ldd r25,Y+4
747 034e 8131 cpi r24,17
748 0350 9105 cpc r25,__zero_reg__
749 0352 0CF0 brlt .L42
750 0354 14C0 rjmp .L40
751 .L42:
104:shiyan5.c **** {sendchar(*pointer);
753 .LM63:
754 0356 E981 ldd r30,Y+1
755 0358 FA81 ldd r31,Y+2
756 035a 8081 ld r24,Z
757 035c 0E94 0000 call sendchar
105:shiyan5.c **** n=*pointer;
759 .LM64:
760 0360 E981 ldd r30,Y+1
761 0362 FA81 ldd r31,Y+2
762 0364 8081 ld r24,Z
763 0366 8D83 std Y+5,r24
106:shiyan5.c **** pointer++;}
765 .LM65:
766 0368 8981 ldd r24,Y+1
767 036a 9A81 ldd r25,Y+2
768 036c 0196 adiw r24,1
769 036e 8983 std Y+1,r24
770 0370 9A83 std Y+2,r25
772 .LM66:
773 0372 8B81 ldd r24,Y+3
774 0374 9C81 ldd r25,Y+4
775 0376 0196 adiw r24,1
776 0378 8B83 std Y+3,r24
777 037a 9C83 std Y+4,r25
778 037c E6CF rjmp .L39
779 .L40:
107:shiyan5.c **** while(1)
781 .LM67:
782 .L43:
783 037e FFCF rjmp .L43
108:shiyan5.c **** {;}
109:shiyan5.c ****
110:shiyan5.c **** }...
785 .LM68:
786 .LBE5:
787 /* epilogue: frame size=7 */
788 /* epilogue: noreturn */
789 /* epilogue end (size=0) */
790 /* function main size 63 (59) */
798 .Lscope7:
800 .comm data_receive,20,1
805 .text
807 Letext:
808 /* File "shiyan5.c": code 451 = 0x01c3 ( 321), prologues 71, epilogues 59 */
DEFINED SYMBOLS
*ABS*:00000000 shiyan5.c
*ABS*:0000003f __SREG__
*ABS*:0000003e __SP_H__
*ABS*:0000003d __SP_L__
*ABS*:00000000 __tmp_reg__
*ABS*:00000001 __zero_reg__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccOOaaaa.s:91 .bss:00000000 global_uart1_data
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccOOaaaa.s:97 .data:00000000 command_send
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccOOaaaa.s:104 .bss:00000001 ii
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccOOaaaa.s:111 .text:00000000 delay_us
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccOOaaaa.s:167 .text:00000040 delay_ms
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccOOaaaa.s:238 .text:00000092 delay_s
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccOOaaaa.s:308 .text:000000e4 usart1_init
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccOOaaaa.s:360 .text:00000120 sendchar
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccOOaaaa.s:446 .text:000001a0 __vector_30
*COM*:00000014 data_receive
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccOOaaaa.s:530 .text:00000218 lrc_check
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccOOaaaa.s:692 .text:00000304 main
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccOOaaaa.s:807 .text:00000380 Letext
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
__stack
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -