📄 m.lst
字号:
299 .LM22:
300 0114 8CE0 ldi r24,lo8(12)
301 0116 0EC0 rjmp .L38
302 .L23:
47:D:/liwei/two/m.c **** case 0xDE:tempnum=13;times=0;break;
304 .LM23:
305 0118 8DE0 ldi r24,lo8(13)
306 011a 0CC0 rjmp .L38
307 .L24:
48:D:/liwei/two/m.c **** case 0xBE:tempnum=14;times=0;break;
309 .LM24:
310 011c 8EE0 ldi r24,lo8(14)
311 011e 0AC0 rjmp .L38
312 .L25:
49:D:/liwei/two/m.c **** case 0x7E:tempnum=15;times=0;break;
314 .LM25:
315 0120 8FE0 ldi r24,lo8(15)
316 0122 08C0 rjmp .L38
317 .L26:
50:D:/liwei/two/m.c **** default:{
51:D:/liwei/two/m.c **** times++;
319 .LM26:
320 0124 8091 0000 lds r24,times.5
321 0128 8F5F subi r24,lo8(-(1))
322 012a 8093 0000 sts times.5,r24
52:D:/liwei/two/m.c **** if(times==4)
324 .LM27:
325 012e 8430 cpi r24,lo8(4)
326 0130 29F4 brne .L9
53:D:/liwei/two/m.c **** {
54:D:/liwei/two/m.c **** tempnum=16;
328 .LM28:
329 0132 80E1 ldi r24,lo8(16)
330 .L38:
331 0134 8093 0000 sts tempnum.2,r24
332 .L39:
55:D:/liwei/two/m.c **** times=0;
334 .LM29:
335 0138 1092 0000 sts times.5,__zero_reg__
336 .L9:
56:D:/liwei/two/m.c **** }
57:D:/liwei/two/m.c **** }break;
58:D:/liwei/two/m.c **** }
59:D:/liwei/two/m.c **** lastnum=currentnum;
338 .LM30:
339 013c 8091 0000 lds r24,currentnum.4
340 0140 8093 0000 sts lastnum.3,r24
60:D:/liwei/two/m.c **** currentnum=tempnum;
342 .LM31:
343 0144 9091 0000 lds r25,tempnum.2
344 0148 9093 0000 sts currentnum.4,r25
61:D:/liwei/two/m.c **** if(currentnum==lastnum)return(16);
346 .LM32:
347 014c 9817 cp r25,r24
348 014e 19F4 brne .L35
349 0150 80E1 ldi r24,lo8(16)
350 0152 90E0 ldi r25,hi8(16)
351 0154 0895 ret
352 .L35:
62:D:/liwei/two/m.c **** else return(currentnum);
354 .LM33:
355 0156 892F mov r24,r25
356 0158 9927 clr r25
63:D:/liwei/two/m.c ****
64:D:/liwei/two/m.c **** }
358 .LM34:
359 015a 0895 ret
360 /* epilogue: frame size=0 */
361 015c 0895 ret
362 /* epilogue end (size=1) */
363 /* function keyboard size 175 (174) */
371 .global Initi_Device
373 Initi_Device:
65:D:/liwei/two/m.c ****
66:D:/liwei/two/m.c ****
67:D:/liwei/two/m.c ****
68:D:/liwei/two/m.c **** uint8_t ledcode[16]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x67,0x77,0x7C,0x58,0x5E,0x79,0x7
69:D:/liwei/two/m.c **** //uint8_t ledaddr[6]={0xDF,0xEF,0xF7,0xFB,0xFD,0xFE}; //for PD port pd5=0,
70:D:/liwei/two/m.c ****
71:D:/liwei/two/m.c ****
72:D:/liwei/two/m.c **** void Initi_Device(void)
73:D:/liwei/two/m.c **** {
375 .LM35:
376 /* prologue: frame size=0 */
377 /* prologue end (size=0) */
74:D:/liwei/two/m.c **** LED_ADD_DDR=0xFF;
379 .LM36:
380 015e 9FEF ldi r25,lo8(-1)
381 0160 91BB out 49-0x20,r25
75:D:/liwei/two/m.c **** LED_ADD_PORT=0xFE;
383 .LM37:
384 0162 8EEF ldi r24,lo8(-2)
385 0164 82BB out 50-0x20,r24
76:D:/liwei/two/m.c ****
77:D:/liwei/two/m.c **** LED_DATA_DDR=0xFF;
387 .LM38:
388 0166 97BB out 55-0x20,r25
78:D:/liwei/two/m.c **** LED_DATA_PORT=0xFF;
390 .LM39:
391 0168 98BB out 56-0x20,r25
392 /* epilogue: frame size=0 */
393 016a 0895 ret
394 /* epilogue end (size=1) */
395 /* function Initi_Device size 7 (6) */
397 .lcomm code_num.0,1
399 .global __vector_8
401 __vector_8:
79:D:/liwei/two/m.c **** }
80:D:/liwei/two/m.c ****
81:D:/liwei/two/m.c **** SIGNAL(SIG_OVERFLOW1)
82:D:/liwei/two/m.c **** {
403 .LM40:
404 /* prologue: frame size=0 */
405 016c 1F92 push __zero_reg__
406 016e 0F92 push __tmp_reg__
407 0170 0FB6 in __tmp_reg__,__SREG__
408 0172 0F92 push __tmp_reg__
409 0174 1124 clr __zero_reg__
410 0176 2F93 push r18
411 0178 3F93 push r19
412 017a 4F93 push r20
413 017c 5F93 push r21
414 017e 6F93 push r22
415 0180 7F93 push r23
416 0182 8F93 push r24
417 0184 9F93 push r25
418 0186 AF93 push r26
419 0188 BF93 push r27
420 018a EF93 push r30
421 018c FF93 push r31
422 /* prologue end (size=17) */
83:D:/liwei/two/m.c **** static uint8_t code_num=0;
84:D:/liwei/two/m.c ****
85:D:/liwei/two/m.c **** code_num=keyboard();
424 .LM41:
425 018e 0E94 0000 call keyboard
426 0192 8093 0000 sts code_num.0,r24
86:D:/liwei/two/m.c ****
87:D:/liwei/two/m.c **** if (code_num!=16)
428 .LM42:
429 0196 8031 cpi r24,lo8(16)
430 0198 31F0 breq .L42
88:D:/liwei/two/m.c **** LED_DATA_PORT=ledcode[code_num];
432 .LM43:
433 019a E82F mov r30,r24
434 019c FF27 clr r31
435 019e E050 subi r30,lo8(-(ledcode))
436 01a0 F040 sbci r31,hi8(-(ledcode))
437 01a2 8081 ld r24,Z
438 01a4 88BB out 56-0x20,r24
439 .L42:
89:D:/liwei/two/m.c ****
90:D:/liwei/two/m.c **** TCNT1L=0xB2;
441 .LM44:
442 01a6 82EB ldi r24,lo8(-78)
443 01a8 8CBD out 76-0x20,r24
91:D:/liwei/two/m.c **** TCNT1H=0xFF;
445 .LM45:
446 01aa 8FEF ldi r24,lo8(-1)
447 01ac 8DBD out 77-0x20,r24
448 /* epilogue: frame size=0 */
449 01ae FF91 pop r31
450 01b0 EF91 pop r30
451 01b2 BF91 pop r27
452 01b4 AF91 pop r26
453 01b6 9F91 pop r25
454 01b8 8F91 pop r24
455 01ba 7F91 pop r23
456 01bc 6F91 pop r22
457 01be 5F91 pop r21
458 01c0 4F91 pop r20
459 01c2 3F91 pop r19
460 01c4 2F91 pop r18
461 01c6 0F90 pop __tmp_reg__
462 01c8 0FBE out __SREG__,__tmp_reg__
463 01ca 0F90 pop __tmp_reg__
464 01cc 1F90 pop __zero_reg__
465 01ce 1895 reti
466 /* epilogue end (size=17) */
467 /* function __vector_8 size 50 (16) */
471 .global main
473 main:
92:D:/liwei/two/m.c **** }
93:D:/liwei/two/m.c ****
94:D:/liwei/two/m.c **** int main(void)
95:D:/liwei/two/m.c **** {
475 .LM46:
476 /* prologue: frame size=0 */
477 01d0 C0E0 ldi r28,lo8(__stack - 0)
478 01d2 D0E0 ldi r29,hi8(__stack - 0)
479 01d4 DEBF out __SP_H__,r29
480 01d6 CDBF out __SP_L__,r28
481 /* prologue end (size=4) */
96:D:/liwei/two/m.c **** Initi_Device();
483 .LM47:
484 01d8 0E94 0000 call Initi_Device
97:D:/liwei/two/m.c **** DDRC=0x0F;
486 .LM48:
487 01dc 8FE0 ldi r24,lo8(15)
488 01de 84BB out 52-0x20,r24
98:D:/liwei/two/m.c **** PORTC=0xFF;
490 .LM49:
491 01e0 9FEF ldi r25,lo8(-1)
492 01e2 95BB out 53-0x20,r25
99:D:/liwei/two/m.c **** TCNT1L=0xB2;
494 .LM50:
495 01e4 82EB ldi r24,lo8(-78)
496 01e6 8CBD out 76-0x20,r24
100:D:/liwei/two/m.c **** TCNT1H=0xFF;
498 .LM51:
499 01e8 9DBD out 77-0x20,r25
101:D:/liwei/two/m.c **** TCCR1A=0;
501 .LM52:
502 01ea 1FBC out 79-0x20,__zero_reg__
102:D:/liwei/two/m.c **** TCCR1B=5;
504 .LM53:
505 01ec 85E0 ldi r24,lo8(5)
506 01ee 8EBD out 78-0x20,r24
103:D:/liwei/two/m.c **** TIMSK=(1<<TOIE1);
508 .LM54:
509 01f0 84E0 ldi r24,lo8(4)
510 01f2 89BF out 89-0x20,r24
104:D:/liwei/two/m.c **** LED_ADD_PORT=0xDF;
512 .LM55:
513 01f4 8FED ldi r24,lo8(-33)
514 01f6 82BB out 50-0x20,r24
105:D:/liwei/two/m.c **** LED_DATA_PORT=0x3F;
516 .LM56:
517 01f8 8FE3 ldi r24,lo8(63)
518 01fa 88BB out 56-0x20,r24
106:D:/liwei/two/m.c **** sei();
520 .LM57:
521 /* #APP */
522 01fc 7894 sei
523 /* #NOAPP */
524 .L44:
107:D:/liwei/two/m.c **** for(;;)
526 .LM58:
527 01fe FFCF rjmp .L44
528 /* epilogue: frame size=0 */
529 /* epilogue: noreturn */
530 /* epilogue end (size=0) */
531 /* function main size 25 (21) */
534 .text
536 Letext:
537 /* File "D:/liwei/two/m.c": code 257 = 0x0101 ( 217), prologues 21, epilogues 19 */
DEFINED SYMBOLS
*ABS*:00000000 m.c
*ABS*:0000003f __SREG__
*ABS*:0000003e __SP_H__
*ABS*:0000003d __SP_L__
*ABS*:00000000 __tmp_reg__
*ABS*:00000001 __zero_reg__
C:\DOCUME~1\lab\LOCALS~1\Temp/ccyKaaaa.s:55 .data:00000000 ledcode
C:\DOCUME~1\lab\LOCALS~1\Temp/ccyKaaaa.s:74 .data:00000010 scancode.1
C:\DOCUME~1\lab\LOCALS~1\Temp/ccyKaaaa.s:78 .data:00000011 tempnum.2
C:\DOCUME~1\lab\LOCALS~1\Temp/ccyKaaaa.s:82 .data:00000012 lastnum.3
C:\DOCUME~1\lab\LOCALS~1\Temp/ccyKaaaa.s:86 .data:00000013 currentnum.4
.bss:00000000 times.5
C:\DOCUME~1\lab\LOCALS~1\Temp/ccyKaaaa.s:93 .text:00000000 keyboard
C:\DOCUME~1\lab\LOCALS~1\Temp/ccyKaaaa.s:373 .text:0000015e Initi_Device
C:\DOCUME~1\lab\LOCALS~1\Temp/ccyKaaaa.s:88 .bss:00000001 code_num.0
C:\DOCUME~1\lab\LOCALS~1\Temp/ccyKaaaa.s:401 .text:0000016c __vector_8
C:\DOCUME~1\lab\LOCALS~1\Temp/ccyKaaaa.s:473 .text:000001d0 main
C:\DOCUME~1\lab\LOCALS~1\Temp/ccyKaaaa.s:536 .text:00000200 Letext
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
__stack
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -