📄 keyboard_uart.lss
字号:
keyboard_uart.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 0000037a 00000000 00000000 00000074 2**1
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 00000016 00800060 0000037a 000003ee 2**0
CONTENTS, ALLOC, LOAD, DATA
2 .bss 00000003 00800076 00000390 00000404 2**0
ALLOC
3 .debug_aranges 00000060 00000000 00000000 00000404 2**0
CONTENTS, READONLY, DEBUGGING
4 .debug_pubnames 000000b3 00000000 00000000 00000464 2**0
CONTENTS, READONLY, DEBUGGING
5 .debug_info 00000242 00000000 00000000 00000517 2**0
CONTENTS, READONLY, DEBUGGING
6 .debug_abbrev 00000153 00000000 00000000 00000759 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_line 000002e4 00000000 00000000 000008ac 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_frame 000000b0 00000000 00000000 00000b90 2**2
CONTENTS, READONLY, DEBUGGING
9 .debug_str 000000d7 00000000 00000000 00000c40 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 0c 94 2a 00 jmp 0x54 ; 0x54 <__ctors_end>
4: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt>
8: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt>
c: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt>
10: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt>
14: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt>
18: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt>
1c: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt>
20: 0c 94 e4 00 jmp 0x1c8 ; 0x1c8 <__vector_8>
24: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt>
28: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt>
2c: 0c 94 87 01 jmp 0x30e ; 0x30e <__vector_11>
30: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt>
34: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt>
38: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt>
3c: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt>
40: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt>
44: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt>
48: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt>
4c: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt>
50: 0c 94 47 00 jmp 0x8e ; 0x8e <__bad_interrupt>
00000054 <__ctors_end>:
54: 11 24 eor r1, r1
56: 1f be out 0x3f, r1 ; 63
58: cf e5 ldi r28, 0x5F ; 95
5a: d4 e0 ldi r29, 0x04 ; 4
5c: de bf out 0x3e, r29 ; 62
5e: cd bf out 0x3d, r28 ; 61
00000060 <__do_copy_data>:
60: 10 e0 ldi r17, 0x00 ; 0
62: a0 e6 ldi r26, 0x60 ; 96
64: b0 e0 ldi r27, 0x00 ; 0
66: ea e7 ldi r30, 0x7A ; 122
68: f3 e0 ldi r31, 0x03 ; 3
6a: 02 c0 rjmp .+4 ; 0x70 <.do_copy_data_start>
0000006c <.do_copy_data_loop>:
6c: 05 90 lpm r0, Z+
6e: 0d 92 st X+, r0
00000070 <.do_copy_data_start>:
70: a6 37 cpi r26, 0x76 ; 118
72: b1 07 cpc r27, r17
74: d9 f7 brne .-10 ; 0x6c <.do_copy_data_loop>
00000076 <__do_clear_bss>:
76: 10 e0 ldi r17, 0x00 ; 0
78: a6 e7 ldi r26, 0x76 ; 118
7a: b0 e0 ldi r27, 0x00 ; 0
7c: 01 c0 rjmp .+2 ; 0x80 <.do_clear_bss_start>
0000007e <.do_clear_bss_loop>:
7e: 1d 92 st X+, r1
00000080 <.do_clear_bss_start>:
80: a9 37 cpi r26, 0x79 ; 121
82: b1 07 cpc r27, r17
84: e1 f7 brne .-8 ; 0x7e <.do_clear_bss_loop>
86: 0e 94 0e 01 call 0x21c ; 0x21c <main>
8a: 0c 94 bb 01 jmp 0x376 ; 0x376 <_exit>
0000008e <__bad_interrupt>:
8e: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
00000092 <key>:
//------------键盘码表
unsigned char a,b,date;
unsigned char x[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};
void key()
{
92: df 93 push r29
94: cf 93 push r28
96: 00 d0 rcall .+0 ; 0x98 <key+0x6>
98: 00 d0 rcall .+0 ; 0x9a <key+0x8>
9a: cd b7 in r28, 0x3d ; 61
9c: de b7 in r29, 0x3e ; 62
DDRB=0X0F;//开始扫描
9e: e7 e3 ldi r30, 0x37 ; 55
a0: f0 e0 ldi r31, 0x00 ; 0
a2: 8f e0 ldi r24, 0x0F ; 15
a4: 80 83 st Z, r24
PORTB=0XF0;
a6: e8 e3 ldi r30, 0x38 ; 56
a8: f0 e0 ldi r31, 0x00 ; 0
aa: 80 ef ldi r24, 0xF0 ; 240
ac: 80 83 st Z, r24
if( PINB!=0xf0)
ae: e6 e3 ldi r30, 0x36 ; 54
b0: f0 e0 ldi r31, 0x00 ; 0
b2: 80 81 ld r24, Z
b4: 80 3f cpi r24, 0xF0 ; 240
b6: 09 f4 brne .+2 ; 0xba <key+0x28>
b8: 6b c0 rjmp .+214 ; 0x190 <key+0xfe>
{
switch(PINB)
ba: e6 e3 ldi r30, 0x36 ; 54
bc: f0 e0 ldi r31, 0x00 ; 0
be: 80 81 ld r24, Z
c0: 28 2f mov r18, r24
c2: 30 e0 ldi r19, 0x00 ; 0
c4: 3c 83 std Y+4, r19 ; 0x04
c6: 2b 83 std Y+3, r18 ; 0x03
c8: 8b 81 ldd r24, Y+3 ; 0x03
ca: 9c 81 ldd r25, Y+4 ; 0x04
cc: 80 3b cpi r24, 0xB0 ; 176
ce: 91 05 cpc r25, r1
d0: e1 f0 breq .+56 ; 0x10a <key+0x78>
d2: 2b 81 ldd r18, Y+3 ; 0x03
d4: 3c 81 ldd r19, Y+4 ; 0x04
d6: 21 3b cpi r18, 0xB1 ; 177
d8: 31 05 cpc r19, r1
da: 34 f4 brge .+12 ; 0xe8 <key+0x56>
dc: 8b 81 ldd r24, Y+3 ; 0x03
de: 9c 81 ldd r25, Y+4 ; 0x04
e0: 80 37 cpi r24, 0x70 ; 112
e2: 91 05 cpc r25, r1
e4: b1 f0 breq .+44 ; 0x112 <key+0x80>
e6: 18 c0 rjmp .+48 ; 0x118 <key+0x86>
e8: 2b 81 ldd r18, Y+3 ; 0x03
ea: 3c 81 ldd r19, Y+4 ; 0x04
ec: 20 3d cpi r18, 0xD0 ; 208
ee: 31 05 cpc r19, r1
f0: 41 f0 breq .+16 ; 0x102 <key+0x70>
f2: 8b 81 ldd r24, Y+3 ; 0x03
f4: 9c 81 ldd r25, Y+4 ; 0x04
f6: 80 3e cpi r24, 0xE0 ; 224
f8: 91 05 cpc r25, r1
fa: 71 f4 brne .+28 ; 0x118 <key+0x86>
{
case 0xe0:a=0; break;
fc: 10 92 78 00 sts 0x0078, r1
100: 0b c0 rjmp .+22 ; 0x118 <key+0x86>
case 0xd0:a=1; break;
102: 81 e0 ldi r24, 0x01 ; 1
104: 80 93 78 00 sts 0x0078, r24
108: 07 c0 rjmp .+14 ; 0x118 <key+0x86>
case 0xb0:a=2; break;
10a: 82 e0 ldi r24, 0x02 ; 2
10c: 80 93 78 00 sts 0x0078, r24
110: 03 c0 rjmp .+6 ; 0x118 <key+0x86>
case 0x70:a=3; break;
112: 83 e0 ldi r24, 0x03 ; 3
114: 80 93 78 00 sts 0x0078, r24
}
DDRB=0XF0;
118: e7 e3 ldi r30, 0x37 ; 55
11a: f0 e0 ldi r31, 0x00 ; 0
11c: 80 ef ldi r24, 0xF0 ; 240
11e: 80 83 st Z, r24
PORTB=0X0F;
120: e8 e3 ldi r30, 0x38 ; 56
122: f0 e0 ldi r31, 0x00 ; 0
124: 8f e0 ldi r24, 0x0F ; 15
126: 80 83 st Z, r24
if( PINB!=0x0f)
128: e6 e3 ldi r30, 0x36 ; 54
12a: f0 e0 ldi r31, 0x00 ; 0
12c: 80 81 ld r24, Z
12e: 8f 30 cpi r24, 0x0F ; 15
130: 79 f1 breq .+94 ; 0x190 <key+0xfe>
{
switch(PINB)
132: e6 e3 ldi r30, 0x36 ; 54
134: f0 e0 ldi r31, 0x00 ; 0
136: 80 81 ld r24, Z
138: 28 2f mov r18, r24
13a: 30 e0 ldi r19, 0x00 ; 0
13c: 3a 83 std Y+2, r19 ; 0x02
13e: 29 83 std Y+1, r18 ; 0x01
140: 89 81 ldd r24, Y+1 ; 0x01
142: 9a 81 ldd r25, Y+2 ; 0x02
144: 8b 30 cpi r24, 0x0B ; 11
146: 91 05 cpc r25, r1
148: e1 f0 breq .+56 ; 0x182 <key+0xf0>
14a: 29 81 ldd r18, Y+1 ; 0x01
14c: 3a 81 ldd r19, Y+2 ; 0x02
14e: 2c 30 cpi r18, 0x0C ; 12
150: 31 05 cpc r19, r1
152: 34 f4 brge .+12 ; 0x160 <key+0xce>
154: 89 81 ldd r24, Y+1 ; 0x01
156: 9a 81 ldd r25, Y+2 ; 0x02
158: 87 30 cpi r24, 0x07 ; 7
15a: 91 05 cpc r25, r1
15c: b1 f0 breq .+44 ; 0x18a <key+0xf8>
15e: 18 c0 rjmp .+48 ; 0x190 <key+0xfe>
160: 29 81 ldd r18, Y+1 ; 0x01
162: 3a 81 ldd r19, Y+2 ; 0x02
164: 2d 30 cpi r18, 0x0D ; 13
166: 31 05 cpc r19, r1
168: 41 f0 breq .+16 ; 0x17a <key+0xe8>
16a: 89 81 ldd r24, Y+1 ; 0x01
16c: 9a 81 ldd r25, Y+2 ; 0x02
16e: 8e 30 cpi r24, 0x0E ; 14
170: 91 05 cpc r25, r1
172: 71 f4 brne .+28 ; 0x190 <key+0xfe>
{
case 0x0e:b=0; break;
174: 10 92 76 00 sts 0x0076, r1
178: 0b c0 rjmp .+22 ; 0x190 <key+0xfe>
case 0x0d:b=1; break;
17a: 81 e0 ldi r24, 0x01 ; 1
17c: 80 93 76 00 sts 0x0076, r24
180: 07 c0 rjmp .+14 ; 0x190 <key+0xfe>
case 0x0b:b=2; break;
182: 82 e0 ldi r24, 0x02 ; 2
184: 80 93 76 00 sts 0x0076, r24
188: 03 c0 rjmp .+6 ; 0x190 <key+0xfe>
case 0x07:b=3; break;
18a: 83 e0 ldi r24, 0x03 ; 3
18c: 80 93 76 00 sts 0x0076, r24
}
}
}
date=x[a][b]; //计算扫描结果
190: 80 91 78 00 lds r24, 0x0078
194: 48 2f mov r20, r24
196: 50 e0 ldi r21, 0x00 ; 0
198: 80 91 76 00 lds r24, 0x0076
19c: 28 2f mov r18, r24
19e: 30 e0 ldi r19, 0x00 ; 0
1a0: ca 01 movw r24, r20
1a2: 88 0f add r24, r24
1a4: 99 1f adc r25, r25
1a6: 88 0f add r24, r24
1a8: 99 1f adc r25, r25
1aa: 82 0f add r24, r18
1ac: 93 1f adc r25, r19
1ae: fc 01 movw r30, r24
1b0: e0 5a subi r30, 0xA0 ; 160
1b2: ff 4f sbci r31, 0xFF ; 255
1b4: 80 81 ld r24, Z
1b6: 80 93 77 00 sts 0x0077, r24
// if( PINB!=0x0f)
//return 0;//扫描结束
//else ;
}
1ba: 0f 90 pop r0
1bc: 0f 90 pop r0
1be: 0f 90 pop r0
1c0: 0f 90 pop r0
1c2: cf 91 pop r28
1c4: df 91 pop r29
1c6: 08 95 ret
000001c8 <__vector_8>:
//------------------------------
SIGNAL(SIG_OVERFLOW1) //interrupt[TIM1_OVF]
{
1c8: 1f 92 push r1
1ca: 0f 92 push r0
1cc: 0f b6 in r0, 0x3f ; 63
1ce: 0f 92 push r0
1d0: 11 24 eor r1, r1
1d2: 8f 93 push r24
1d4: 9f 93 push r25
1d6: ef 93 push r30
1d8: ff 93 push r31
1da: df 93 push r29
1dc: cf 93 push r28
1de: cd b7 in r28, 0x3d ; 61
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -