📄 main.lst
字号:
85:main.c ****
86:main.c **** for(i=0;i<6;i++)
387 .LM49:
388 0110 10E0 ldi r17,lo8(0)
389 0112 C5E0 ldi r28,lo8(5)
390 0114 D0E0 ldi r29,hi8(5)
391 .L52:
87:main.c **** {
88:main.c **** if(addr & _BV(5-i))
393 .LM50:
394 0116 802F mov r24,r16
395 0118 9927 clr r25
396 011a 0C2E mov r0,r28
397 011c 02C0 rjmp 2f
398 011e 9595 1: asr r25
399 0120 8795 ror r24
400 0122 0A94 2: dec r0
401 0124 E2F7 brpl 1b
402 0126 80FF sbrs r24,0
403 0128 02C0 rjmp .L50
89:main.c **** lcd_send_bit(1);
405 .LM51:
406 012a 81E0 ldi r24,lo8(1)
407 012c 01C0 rjmp .L65
408 .L50:
90:main.c **** else
91:main.c **** lcd_send_bit(0);
410 .LM52:
411 012e 80E0 ldi r24,lo8(0)
412 .L65:
413 0130 0E94 0000 call lcd_send_bit
415 .LM53:
416 0134 1F5F subi r17,lo8(-(1))
417 0136 2197 sbiw r28,1
418 0138 1630 cpi r17,lo8(6)
419 013a 68F3 brlo .L52
92:main.c **** }
93:main.c **** for(i=0;i<4;i++)
421 .LM54:
422 013c 10E0 ldi r17,lo8(0)
423 013e C0E0 ldi r28,lo8(0)
424 0140 D0E0 ldi r29,hi8(0)
425 .L59:
94:main.c **** {
95:main.c **** if(data & _BV(i))
427 .LM55:
428 0142 8F2D mov r24,r15
429 0144 9927 clr r25
430 0146 0C2E mov r0,r28
431 0148 02C0 rjmp 2f
432 014a 9595 1: asr r25
433 014c 8795 ror r24
434 014e 0A94 2: dec r0
435 0150 E2F7 brpl 1b
436 0152 80FF sbrs r24,0
437 0154 02C0 rjmp .L57
96:main.c **** lcd_send_bit(1);
439 .LM56:
440 0156 81E0 ldi r24,lo8(1)
441 0158 01C0 rjmp .L66
442 .L57:
97:main.c **** else
98:main.c **** lcd_send_bit(0);
444 .LM57:
445 015a 80E0 ldi r24,lo8(0)
446 .L66:
447 015c 0E94 0000 call lcd_send_bit
449 .LM58:
450 0160 1F5F subi r17,lo8(-(1))
451 0162 2196 adiw r28,1
452 0164 1430 cpi r17,lo8(4)
453 0166 68F3 brlo .L59
99:main.c **** }
100:main.c **** CS1;
455 .LM59:
456 0168 DF9A sbi 59-0x20,7
101:main.c **** delay(1);
458 .LM60:
459 016a 81E0 ldi r24,lo8(1)
460 016c 90E0 ldi r25,hi8(1)
461 016e 0E94 0000 call delay
102:main.c **** }
463 .LM61:
464 .LBE7:
465 /* epilogue: frame size=0 */
466 0172 DF91 pop r29
467 0174 CF91 pop r28
468 0176 1F91 pop r17
469 0178 0F91 pop r16
470 017a FF90 pop r15
471 017c 0895 ret
472 /* epilogue end (size=6) */
473 /* function lcd_send_data size 81 (70) */
478 .Lscope4:
482 .global lcd_send_cmd
484 lcd_send_cmd:
103:main.c **** void lcd_send_cmd(uint8_t cmd)
104:main.c **** {
486 .LM62:
487 /* prologue: frame size=0 */
488 017e 0F93 push r16
489 0180 1F93 push r17
490 0182 CF93 push r28
491 0184 DF93 push r29
492 /* prologue end (size=4) */
493 0186 082F mov r16,r24
105:main.c **** uint8_t i;
106:main.c **** CS1;
495 .LM63:
496 .LBB8:
497 0188 DF9A sbi 59-0x20,7
107:main.c **** delay(1);
499 .LM64:
500 018a 81E0 ldi r24,lo8(1)
501 018c 90E0 ldi r25,hi8(1)
502 018e 0E94 0000 call delay
108:main.c **** CS0;
504 .LM65:
505 0192 DF98 cbi 59-0x20,7
109:main.c **** delay(1);
507 .LM66:
508 0194 81E0 ldi r24,lo8(1)
509 0196 90E0 ldi r25,hi8(1)
510 0198 0E94 0000 call delay
110:main.c **** lcd_send_bit(1);
512 .LM67:
513 019c 81E0 ldi r24,lo8(1)
514 019e 0E94 0000 call lcd_send_bit
111:main.c **** lcd_send_bit(0);
516 .LM68:
517 01a2 80E0 ldi r24,lo8(0)
518 01a4 0E94 0000 call lcd_send_bit
112:main.c **** lcd_send_bit(0);
520 .LM69:
521 01a8 80E0 ldi r24,lo8(0)
522 01aa 0E94 0000 call lcd_send_bit
113:main.c **** for(i=0;i<8;i++)
524 .LM70:
525 01ae 10E0 ldi r17,lo8(0)
526 01b0 C7E0 ldi r28,lo8(7)
527 01b2 D0E0 ldi r29,hi8(7)
528 .L76:
114:main.c **** {
115:main.c **** if(cmd & _BV(7-i))
530 .LM71:
531 01b4 802F mov r24,r16
532 01b6 9927 clr r25
533 01b8 0C2E mov r0,r28
534 01ba 02C0 rjmp 2f
535 01bc 9595 1: asr r25
536 01be 8795 ror r24
537 01c0 0A94 2: dec r0
538 01c2 E2F7 brpl 1b
539 01c4 80FF sbrs r24,0
540 01c6 02C0 rjmp .L74
116:main.c **** lcd_send_bit(1);
542 .LM72:
543 01c8 81E0 ldi r24,lo8(1)
544 01ca 01C0 rjmp .L80
545 .L74:
117:main.c **** else
118:main.c **** lcd_send_bit(0);
547 .LM73:
548 01cc 80E0 ldi r24,lo8(0)
549 .L80:
550 01ce 0E94 0000 call lcd_send_bit
552 .LM74:
553 01d2 1F5F subi r17,lo8(-(1))
554 01d4 2197 sbiw r28,1
555 01d6 1830 cpi r17,lo8(8)
556 01d8 68F3 brlo .L76
119:main.c **** }
120:main.c **** lcd_send_bit(0);
558 .LM75:
559 01da 80E0 ldi r24,lo8(0)
560 01dc 0E94 0000 call lcd_send_bit
121:main.c **** CS1;
562 .LM76:
563 01e0 DF9A sbi 59-0x20,7
122:main.c **** delay(1);
565 .LM77:
566 01e2 81E0 ldi r24,lo8(1)
567 01e4 90E0 ldi r25,hi8(1)
568 01e6 0E94 0000 call delay
123:main.c **** }
570 .LM78:
571 .LBE8:
572 /* epilogue: frame size=0 */
573 01ea DF91 pop r29
574 01ec CF91 pop r28
575 01ee 1F91 pop r17
576 01f0 0F91 pop r16
577 01f2 0895 ret
578 /* epilogue end (size=5) */
579 /* function lcd_send_cmd size 59 (50) */
584 .Lscope5:
587 .global test_lcd
589 test_lcd:
124:main.c **** void test_lcd(void)
125:main.c **** {
591 .LM79:
592 /* prologue: frame size=0 */
593 01f4 0F93 push r16
594 01f6 1F93 push r17
595 01f8 CF93 push r28
596 01fa DF93 push r29
597 /* prologue end (size=4) */
126:main.c **** uint8_t i,j;
127:main.c **** lcd_send_cmd(LCD_CMD_INITIAL);
599 .LM80:
600 .LBB9:
601 01fc 89E2 ldi r24,lo8(41)
602 01fe 0E94 0000 call lcd_send_cmd
128:main.c **** lcd_send_cmd(LCD_CMD_SEL_RC);
604 .LM81:
605 0202 88E1 ldi r24,lo8(24)
606 0204 0E94 0000 call lcd_send_cmd
129:main.c **** lcd_send_cmd(LCD_CMD_OP_RC);
608 .LM82:
609 0208 81E0 ldi r24,lo8(1)
610 020a 0E94 0000 call lcd_send_cmd
130:main.c **** lcd_send_cmd(LCD_CMD_OP_LCD);
612 .LM83:
613 020e 83E0 ldi r24,lo8(3)
614 0210 0E94 0000 call lcd_send_cmd
131:main.c **** beep();
616 .LM84:
617 0214 0E94 0000 call beep
132:main.c **** delay(1000);
619 .LM85:
620 0218 88EE ldi r24,lo8(1000)
621 021a 93E0 ldi r25,hi8(1000)
622 021c 0E94 0000 call delay
133:main.c **** /*display S1---S4*/
134:main.c **** for(i=0;i<0x20;i++)
624 .LM86:
625 0220 00E0 ldi r16,lo8(0)
626 .L91:
135:main.c **** {
136:main.c **** for(j=0;j<4;j++)
628 .LM87:
629 0222 10E0 ldi r17,lo8(0)
630 0224 C0E0 ldi r28,lo8(0)
631 0226 D0E0 ldi r29,hi8(0)
632 .L90:
137:main.c **** {
138:main.c **** lcd_send_data(i,_BV(j));
634 .LM88:
635 0228 81E0 ldi r24,lo8(1)
636 022a 90E0 ldi r25,hi8(1)
637 022c 0C2E mov r0,r28
638 022e 02C0 rjmp 2f
639 0230 880F 1: lsl r24
640 0232 991F rol r25
641 0234 0A94 2: dec r0
642 0236 E2F7 brpl 1b
643 0238 682F mov r22,r24
644 023a 802F mov r24,r16
645 023c 0E94 0000 call lcd_send_data
139:main.c **** beep();
647 .LM89:
648 0240 0E94 0000 call beep
140:main.c **** delay(1000);
650 .LM90:
651 0244 88EE ldi r24,lo8(1000)
652 0246 93E0 ldi r25,hi8(1000)
653 0248 0E94 0000 call delay
655 .LM91:
656 024c 1F5F subi r17,lo8(-(1))
657 024e 2196 adiw r28,1
658 0250 1430 cpi r17,lo8(4)
659 0252 50F3 brlo .L90
661 .LM92:
662 0254 0F5F subi r16,lo8(-(1))
663 0256 0032 cpi r16,lo8(32)
664 0258 20F3 brlo .L91
141:main.c **** }
142:main.c **** }
143:main.c **** beep();
666 .LM93:
667 025a 0E94 0000 call beep
144:main.c **** delay(200);
669 .LM94:
670 025e 88EC ldi r24,lo8(200)
671 0260 90E0 ldi r25,hi8(200)
672 0262 0E94 0000 call delay
145:main.c **** beep();
674 .LM95:
675 0266 0E94 0000 call beep
146:main.c **** lcd_send_cmd(LCD_CMD_CL_LCD);
677 .LM96:
678 026a 82E0 ldi r24,lo8(2)
679 026c 0E94 0000 call lcd_send_cmd
147:main.c **** }
681 .LM97:
682 .LBE9:
683 /* epilogue: frame size=0 */
684 0270 DF91 pop r29
685 0272 CF91 pop r28
686 0274 1F91 pop r17
687 0276 0F91 pop r16
688 0278 0895 ret
689 /* epilogue end (size=5) */
690 /* function test_lcd size 67 (58) */
696 .Lscope6:
699 .global main
701 main:
148:main.c ****
149:main.c **** int main(void)
150:main.c **** {
703 .LM98:
704 /* prologue: frame size=0 */
705 027a C0E0 ldi r28,lo8(__stack - 0)
706 027c D0E0 ldi r29,hi8(__stack - 0)
707 027e DEBF out __SP_H__,r29
708 0280 CDBF out __SP_L__,r28
709 /* prologue end (size=4) */
151:main.c **** /*PC7 output to speak;PC6 to TP.
152:main.c **** PC5~2 correspond to JTAG.only PC4 correspond to JTAG TDO(test data out),should be output MCU.
153:main.c **** PC1~0 correspond to color LED,should be output from MCU.*/
154:main.c **** DDRA=0xFF;
711 .LM99:
712 0282 8FEF ldi r24,lo8(-1)
713 0284 8ABB out 58-0x20,r24
155:main.c **** PORTA=0xFF;
715 .LM100:
716 0286 8BBB out 59-0x20,r24
156:main.c **** DDRC=0xD3;
718 .LM101:
719 0288 83ED ldi r24,lo8(-45)
720 028a 84BB out 52-0x20,r24
157:main.c **** PORTC=0x2C;
722 .LM102:
723 028c 8CE2 ldi r24,lo8(44)
724 028e 85BB out 53-0x20,r24
158:main.c ****
159:main.c **** delay(3000);
726 .LM103:
727 0290 88EB ldi r24,lo8(3000)
728 0292 9BE0 ldi r25,hi8(3000)
729 0294 0E94 0000 call delay
730 .L100:
160:main.c **** while(1)
161:main.c **** {
162:main.c **** test_lcd();
732 .LM104:
733 0298 0E94 0000 call test_lcd
734 029c FDCF rjmp .L100
163:main.c ****
164:main.c **** }
165:main.c **** return 0;
166:main.c **** }
736 .LM105:
737 /* epilogue: frame size=0 */
738 /* epilogue: noreturn */
739 /* epilogue end (size=0) */
740 /* function main size 18 (14) */
742 .Lscope7:
744 .text
746 Letext:
747 /* File "main.c": code 339 = 0x0153 ( 293), prologues 22, epilogues 24 */
DEFINED SYMBOLS
*ABS*:00000000 main.c
*ABS*:0000003f __SREG__
*ABS*:0000003e __SP_H__
*ABS*:0000003d __SP_L__
*ABS*:00000000 __tmp_reg__
*ABS*:00000001 __zero_reg__
D:\DOCUME~1\jiang\LOCALS~1\Temp/cckraaaa.s:62 .text:00000000 delay
D:\DOCUME~1\jiang\LOCALS~1\Temp/cckraaaa.s:121 .text:00000020 beep
D:\DOCUME~1\jiang\LOCALS~1\Temp/cckraaaa.s:183 .text:00000042 send
D:\DOCUME~1\jiang\LOCALS~1\Temp/cckraaaa.s:294 .text:000000b6 lcd_send_bit
D:\DOCUME~1\jiang\LOCALS~1\Temp/cckraaaa.s:345 .text:000000dc lcd_send_data
D:\DOCUME~1\jiang\LOCALS~1\Temp/cckraaaa.s:484 .text:0000017e lcd_send_cmd
D:\DOCUME~1\jiang\LOCALS~1\Temp/cckraaaa.s:589 .text:000001f4 test_lcd
D:\DOCUME~1\jiang\LOCALS~1\Temp/cckraaaa.s:701 .text:0000027a main
D:\DOCUME~1\jiang\LOCALS~1\Temp/cckraaaa.s:746 .text:0000029e Letext
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
__stack
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -