📄 main.lst
字号:
369 010a 9105 cpc r25,__zero_reg__
370 010c 49F0 breq .L36
371 010e 0297 sbiw r24,2
372 0110 49F0 breq .L37
373 0112 0FC0 rjmp .L34
374 .L43:
375 0114 8830 cpi r24,8
376 0116 9105 cpc r25,__zero_reg__
377 0118 49F0 breq .L39
378 011a 4097 sbiw r24,16
379 011c 49F0 breq .L40
380 011e 09C0 rjmp .L34
381 .L36:
89:main.c **** {
90:main.c **** case 0x01:
91:main.c **** KeyValue=6;
383 .LM41:
384 0120 C6E0 ldi r28,lo8(6)
92:main.c **** break;
386 .LM42:
387 0122 07C0 rjmp .L34
388 .L37:
93:main.c **** case 0x02:
94:main.c **** KeyValue=7;
390 .LM43:
391 0124 C7E0 ldi r28,lo8(7)
95:main.c **** break;
393 .LM44:
394 0126 05C0 rjmp .L34
395 .L38:
96:main.c **** case 0x04:
97:main.c **** KeyValue= 8;
397 .LM45:
398 0128 C8E0 ldi r28,lo8(8)
98:main.c **** break;
400 .LM46:
401 012a 03C0 rjmp .L34
402 .L39:
99:main.c **** case 0x08:
100:main.c **** KeyValue= 9;
404 .LM47:
405 012c C9E0 ldi r28,lo8(9)
101:main.c **** break;
407 .LM48:
408 012e 01C0 rjmp .L34
409 .L40:
102:main.c **** case 0x10:
103:main.c **** KeyValue= 10;
411 .LM49:
412 0130 CAE0 ldi r28,lo8(10)
413 .L34:
104:main.c **** break;
105:main.c **** }
106:main.c ****
107:main.c **** }
108:main.c **** PORTD=0xb0;
415 .LM50:
416 0132 80EB ldi r24,lo8(-80)
417 0134 82BB out 50-0x20,r24
109:main.c **** delay(1);
419 .LM51:
420 0136 81E0 ldi r24,lo8(1)
421 0138 90E0 ldi r25,hi8(1)
422 013a 62DF rcall delay
110:main.c **** temp=PINC;
424 .LM52:
425 013c 83B3 in r24,51-0x20
111:main.c **** temp=~temp;
427 .LM53:
428 013e 8095 com r24
112:main.c **** if((temp&0x1f)!=0)
430 .LM54:
431 0140 9927 clr r25
432 0142 8F71 andi r24,lo8(31)
433 0144 9070 andi r25,hi8(31)
434 0146 0097 sbiw r24,0
435 0148 D9F0 breq .L44
113:main.c **** {
114:main.c ****
115:main.c **** switch(temp&0x1f)
437 .LM55:
438 014a 8430 cpi r24,4
439 014c 9105 cpc r25,__zero_reg__
440 014e 99F0 breq .L48
441 0150 8530 cpi r24,5
442 0152 9105 cpc r25,__zero_reg__
443 0154 34F4 brge .L53
444 0156 8130 cpi r24,1
445 0158 9105 cpc r25,__zero_reg__
446 015a 49F0 breq .L46
447 015c 0297 sbiw r24,2
448 015e 49F0 breq .L47
449 0160 0FC0 rjmp .L44
450 .L53:
451 0162 8830 cpi r24,8
452 0164 9105 cpc r25,__zero_reg__
453 0166 49F0 breq .L49
454 0168 4097 sbiw r24,16
455 016a 49F0 breq .L50
456 016c 09C0 rjmp .L44
457 .L46:
116:main.c **** {
117:main.c **** case 0x01:
118:main.c **** KeyValue=11;
459 .LM56:
460 016e CBE0 ldi r28,lo8(11)
119:main.c **** break;
462 .LM57:
463 0170 07C0 rjmp .L44
464 .L47:
120:main.c **** case 0x02:
121:main.c **** KeyValue=12;
466 .LM58:
467 0172 CCE0 ldi r28,lo8(12)
122:main.c **** break;
469 .LM59:
470 0174 05C0 rjmp .L44
471 .L48:
123:main.c **** case 0x04:
124:main.c **** KeyValue= 13;
473 .LM60:
474 0176 CDE0 ldi r28,lo8(13)
125:main.c **** break;
476 .LM61:
477 0178 03C0 rjmp .L44
478 .L49:
126:main.c **** case 0x08:
127:main.c **** KeyValue= 14;
480 .LM62:
481 017a CEE0 ldi r28,lo8(14)
128:main.c **** break;
483 .LM63:
484 017c 01C0 rjmp .L44
485 .L50:
129:main.c **** case 0x10:
130:main.c **** KeyValue= 15;
487 .LM64:
488 017e CFE0 ldi r28,lo8(15)
489 .L44:
131:main.c **** break;
132:main.c **** }
133:main.c ****
134:main.c **** }
135:main.c **** PORTD=0x70;
491 .LM65:
492 0180 80E7 ldi r24,lo8(112)
493 0182 82BB out 50-0x20,r24
136:main.c **** delay(1);
495 .LM66:
496 0184 81E0 ldi r24,lo8(1)
497 0186 90E0 ldi r25,hi8(1)
498 0188 3BDF rcall delay
137:main.c **** temp=PINC;
500 .LM67:
501 018a 83B3 in r24,51-0x20
138:main.c **** temp=~temp;
503 .LM68:
504 018c 8095 com r24
139:main.c **** if((temp&0x1f)!=0)
506 .LM69:
507 018e 9927 clr r25
508 0190 8F71 andi r24,lo8(31)
509 0192 9070 andi r25,hi8(31)
510 0194 0097 sbiw r24,0
511 0196 D9F0 breq .L54
140:main.c **** {
141:main.c **** switch(temp&0x1f)
513 .LM70:
514 0198 8430 cpi r24,4
515 019a 9105 cpc r25,__zero_reg__
516 019c 99F0 breq .L58
517 019e 8530 cpi r24,5
518 01a0 9105 cpc r25,__zero_reg__
519 01a2 34F4 brge .L63
520 01a4 8130 cpi r24,1
521 01a6 9105 cpc r25,__zero_reg__
522 01a8 49F0 breq .L56
523 01aa 0297 sbiw r24,2
524 01ac 49F0 breq .L57
525 01ae 0FC0 rjmp .L54
526 .L63:
527 01b0 8830 cpi r24,8
528 01b2 9105 cpc r25,__zero_reg__
529 01b4 49F0 breq .L59
530 01b6 4097 sbiw r24,16
531 01b8 49F0 breq .L60
532 01ba 09C0 rjmp .L54
533 .L56:
142:main.c **** {
143:main.c **** case 0x01:
144:main.c **** KeyValue=16;
535 .LM71:
536 01bc C0E1 ldi r28,lo8(16)
145:main.c **** break;
538 .LM72:
539 01be 07C0 rjmp .L54
540 .L57:
146:main.c **** case 0x02:
147:main.c **** KeyValue=17;
542 .LM73:
543 01c0 C1E1 ldi r28,lo8(17)
148:main.c **** break;
545 .LM74:
546 01c2 05C0 rjmp .L54
547 .L58:
149:main.c **** case 0x04:
150:main.c **** KeyValue= 18;
549 .LM75:
550 01c4 C2E1 ldi r28,lo8(18)
151:main.c **** break;
552 .LM76:
553 01c6 03C0 rjmp .L54
554 .L59:
152:main.c **** case 0x08:
153:main.c **** KeyValue= 19;
556 .LM77:
557 01c8 C3E1 ldi r28,lo8(19)
154:main.c **** break;
559 .LM78:
560 01ca 01C0 rjmp .L54
561 .L60:
155:main.c **** case 0x10:
156:main.c **** KeyValue= 20;
563 .LM79:
564 01cc C4E1 ldi r28,lo8(20)
565 .L54:
157:main.c **** break;
158:main.c **** }
159:main.c **** }
160:main.c **** return(KeyValue);
567 .LM80:
568 01ce 8C2F mov r24,r28
569 01d0 9927 clr r25
161:main.c ****
162:main.c **** }
571 .LM81:
572 .LBE3:
573 /* epilogue: frame size=0 */
574 01d2 CF91 pop r28
575 01d4 0895 ret
576 /* epilogue end (size=2) */
577 /* function KeySan size 170 (167) */
583 .Lscope4:
586 .global main
588 main:
163:main.c **** /****************************************
164:main.c **** 主程序
165:main.c **** ****************************************/
166:main.c **** int main(void)
167:main.c **** {
590 .LM82:
591 /* prologue: frame size=0 */
592 01d6 C0E0 ldi r28,lo8(__stack - 0)
593 01d8 D0E0 ldi r29,hi8(__stack - 0)
594 01da DEBF out __SP_H__,r29
595 01dc CDBF out __SP_L__,r28
596 /* prologue end (size=4) */
168:main.c **** uint8_t tKeyValue;
169:main.c **** DDRB|=0x02;
598 .LM83:
599 .LBB4:
600 01de B99A sbi 55-0x20,1
170:main.c **** SPI_SlaveInit();
602 .LM84:
603 01e0 48DF rcall SPI_SlaveInit
171:main.c **** DDRD=0xf0;//D4,D5,D6,D7为扫描线
605 .LM85:
606 01e2 80EF ldi r24,lo8(-16)
607 01e4 81BB out 49-0x20,r24
172:main.c **** DDRC=0x00;//C0-C4为输入线
609 .LM86:
610 01e6 14BA out 52-0x20,__zero_reg__
611 .L70:
173:main.c **** while(1)
174:main.c **** {
175:main.c **** tKeyValue=KeySan();
613 .LM87:
614 01e8 54DF rcall KeySan
176:main.c **** if(tKeyValue!=0xff)
616 .LM88:
617 01ea 8F3F cpi r24,lo8(-1)
618 01ec E9F3 breq .L70
177:main.c **** SPDR=tKeyValue;
620 .LM89:
621 01ee 8FB9 out 47-0x20,r24
622 01f0 FBCF rjmp .L70
178:main.c **** }
179:main.c **** return 0;
180:main.c **** }
624 .LM90:
625 .LBE4:
626 /* epilogue: frame size=0 */
627 /* epilogue: noreturn */
628 /* epilogue end (size=0) */
629 /* function main size 14 (10) */
634 .Lscope5:
636 .comm RevData,1,1
638 .text
640 Letext:
641 /* File "main.c": code 259 = 0x0103 ( 230), prologues 15, epilogues 14 */
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__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccPaaaa.s:86 .text:00000000 delay
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccPaaaa.s:175 .text:00000072 SPI_SlaveInit
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccPaaaa.s:204 .text:00000080 SPI_SlaveReceive
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccPaaaa.s:231 .text:0000008a ISR
*COM*:00000001 RevData
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccPaaaa.s:252 .text:00000092 KeySan
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccPaaaa.s:588 .text:000001d6 main
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccPaaaa.s:640 .text:000001f2 Letext
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
__stack
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -