📄 essai.lss
字号:
ESSAI.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 0000027a 00000000 00000000 00000094 2**1
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 000000ca 00800060 0000027a 0000030e 2**0
CONTENTS, ALLOC, LOAD, DATA
2 .bss 00000004 0080012a 0080012a 000003d8 2**0
ALLOC
3 .debug_aranges 00000020 00000000 00000000 000003d8 2**0
CONTENTS, READONLY, DEBUGGING
4 .debug_pubnames 000000a6 00000000 00000000 000003f8 2**0
CONTENTS, READONLY, DEBUGGING
5 .debug_info 0000071f 00000000 00000000 0000049e 2**0
CONTENTS, READONLY, DEBUGGING
6 .debug_abbrev 000001a5 00000000 00000000 00000bbd 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_line 00000542 00000000 00000000 00000d62 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_frame 00000090 00000000 00000000 000012a4 2**2
CONTENTS, READONLY, DEBUGGING
9 .debug_str 00000177 00000000 00000000 00001334 2**0
CONTENTS, READONLY, DEBUGGING
10 .debug_loc 000002cc 00000000 00000000 000014ab 2**0
CONTENTS, READONLY, DEBUGGING
11 .debug_ranges 00000048 00000000 00000000 00001777 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 14 c0 rjmp .+40 ; 0x2a <__ctors_end>
2: 2e c0 rjmp .+92 ; 0x60 <__bad_interrupt>
4: 2d c0 rjmp .+90 ; 0x60 <__bad_interrupt>
6: 2c c0 rjmp .+88 ; 0x60 <__bad_interrupt>
8: 2b c0 rjmp .+86 ; 0x60 <__bad_interrupt>
a: 2a c0 rjmp .+84 ; 0x60 <__bad_interrupt>
c: 29 c0 rjmp .+82 ; 0x60 <__bad_interrupt>
e: 28 c0 rjmp .+80 ; 0x60 <__bad_interrupt>
10: 27 c0 rjmp .+78 ; 0x60 <__bad_interrupt>
12: 26 c0 rjmp .+76 ; 0x60 <__bad_interrupt>
14: 25 c0 rjmp .+74 ; 0x60 <__bad_interrupt>
16: 24 c0 rjmp .+72 ; 0x60 <__bad_interrupt>
18: 23 c0 rjmp .+70 ; 0x60 <__bad_interrupt>
1a: 22 c0 rjmp .+68 ; 0x60 <__bad_interrupt>
1c: 21 c0 rjmp .+66 ; 0x60 <__bad_interrupt>
1e: 20 c0 rjmp .+64 ; 0x60 <__bad_interrupt>
20: 1f c0 rjmp .+62 ; 0x60 <__bad_interrupt>
22: 1e c0 rjmp .+60 ; 0x60 <__bad_interrupt>
24: 1d c0 rjmp .+58 ; 0x60 <__bad_interrupt>
26: 1c c0 rjmp .+56 ; 0x60 <__bad_interrupt>
28: 1b c0 rjmp .+54 ; 0x60 <__bad_interrupt>
0000002a <__ctors_end>:
2a: 11 24 eor r1, r1
2c: 1f be out 0x3f, r1 ; 63
2e: cf e5 ldi r28, 0x5F ; 95
30: d2 e0 ldi r29, 0x02 ; 2
32: de bf out 0x3e, r29 ; 62
34: cd bf out 0x3d, r28 ; 61
00000036 <__do_copy_data>:
36: 11 e0 ldi r17, 0x01 ; 1
38: a0 e6 ldi r26, 0x60 ; 96
3a: b0 e0 ldi r27, 0x00 ; 0
3c: ea e7 ldi r30, 0x7A ; 122
3e: f2 e0 ldi r31, 0x02 ; 2
40: 02 c0 rjmp .+4 ; 0x46 <.do_copy_data_start>
00000042 <.do_copy_data_loop>:
42: 05 90 lpm r0, Z+
44: 0d 92 st X+, r0
00000046 <.do_copy_data_start>:
46: aa 32 cpi r26, 0x2A ; 42
48: b1 07 cpc r27, r17
4a: d9 f7 brne .-10 ; 0x42 <.do_copy_data_loop>
0000004c <__do_clear_bss>:
4c: 11 e0 ldi r17, 0x01 ; 1
4e: aa e2 ldi r26, 0x2A ; 42
50: b1 e0 ldi r27, 0x01 ; 1
52: 01 c0 rjmp .+2 ; 0x56 <.do_clear_bss_start>
00000054 <.do_clear_bss_loop>:
54: 1d 92 st X+, r1
00000056 <.do_clear_bss_start>:
56: ae 32 cpi r26, 0x2E ; 46
58: b1 07 cpc r27, r17
5a: e1 f7 brne .-8 ; 0x54 <.do_clear_bss_loop>
5c: f0 d0 rcall .+480 ; 0x23e <main>
5e: 0b c1 rjmp .+534 ; 0x276 <_exit>
00000060 <__bad_interrupt>:
60: cf cf rjmp .-98 ; 0x0 <__vectors>
00000062 <getkey>:
#include <util/delay.h>
#define LCD PORTC
unsigned char getkey(void)
{
unsigned char RES;
PORTD|=_BV(4);
62: 94 9a sbi 0x12, 4 ; 18
can be achieved.
*/
void
_delay_loop_1(uint8_t __count)
{
__asm__ volatile (
64: 8d e0 ldi r24, 0x0D ; 13
66: 8a 95 dec r24
68: f1 f7 brne .-4 ; 0x66 <getkey+0x4>
_delay_us(10);
if (bit_is_set(PINB,0)) {RES="8";}
6a: b0 9b sbis 0x16, 0 ; 22
6c: 02 c0 rjmp .+4 ; 0x72 <getkey+0x10>
6e: 80 e6 ldi r24, 0x60 ; 96
70: 90 e0 ldi r25, 0x00 ; 0
if (bit_is_set(PINB,1)) {RES="7";}
72: b1 9b sbis 0x16, 1 ; 22
74: 02 c0 rjmp .+4 ; 0x7a <getkey+0x18>
76: 82 e6 ldi r24, 0x62 ; 98
78: 90 e0 ldi r25, 0x00 ; 0
if (bit_is_set(PINB,2)) {RES="H";}
7a: b2 9b sbis 0x16, 2 ; 22
7c: 02 c0 rjmp .+4 ; 0x82 <getkey+0x20>
7e: 84 e6 ldi r24, 0x64 ; 100
80: 90 e0 ldi r25, 0x00 ; 0
if (bit_is_set(PINB,3)) {RES="9";}
82: b3 9b sbis 0x16, 3 ; 22
84: 02 c0 rjmp .+4 ; 0x8a <getkey+0x28>
86: 86 e6 ldi r24, 0x66 ; 102
88: 90 e0 ldi r25, 0x00 ; 0
PORTD&=~_BV(4);
8a: 94 98 cbi 0x12, 4 ; 18
PORTD|=_BV(5);
8c: 95 9a sbi 0x12, 5 ; 18
8e: 9d e0 ldi r25, 0x0D ; 13
90: 9a 95 dec r25
92: f1 f7 brne .-4 ; 0x90 <getkey+0x2e>
_delay_us(10);
if (bit_is_set(PINB,0)) {RES="5";}
94: b0 9b sbis 0x16, 0 ; 22
96: 02 c0 rjmp .+4 ; 0x9c <getkey+0x3a>
98: 88 e6 ldi r24, 0x68 ; 104
9a: 90 e0 ldi r25, 0x00 ; 0
if (bit_is_set(PINB,1)) {RES="4";}
9c: b1 9b sbis 0x16, 1 ; 22
9e: 02 c0 rjmp .+4 ; 0xa4 <getkey+0x42>
a0: 8a e6 ldi r24, 0x6A ; 106
a2: 90 e0 ldi r25, 0x00 ; 0
if (bit_is_set(PINB,2)) {RES="R";}
a4: b2 9b sbis 0x16, 2 ; 22
a6: 02 c0 rjmp .+4 ; 0xac <getkey+0x4a>
a8: 8c e6 ldi r24, 0x6C ; 108
aa: 90 e0 ldi r25, 0x00 ; 0
if (bit_is_set(PINB,3)) {RES="6";}
ac: b3 9b sbis 0x16, 3 ; 22
ae: 02 c0 rjmp .+4 ; 0xb4 <getkey+0x52>
b0: 8e e6 ldi r24, 0x6E ; 110
b2: 90 e0 ldi r25, 0x00 ; 0
PORTD&=~_BV(5);
b4: 95 98 cbi 0x12, 5 ; 18
PORTD|=_BV(6);
b6: 96 9a sbi 0x12, 6 ; 18
b8: 9d e0 ldi r25, 0x0D ; 13
ba: 9a 95 dec r25
bc: f1 f7 brne .-4 ; 0xba <getkey+0x58>
_delay_us(10);
if (bit_is_set(PINB,0)) {RES="2";}
be: b0 9b sbis 0x16, 0 ; 22
c0: 02 c0 rjmp .+4 ; 0xc6 <getkey+0x64>
c2: 80 e7 ldi r24, 0x70 ; 112
c4: 90 e0 ldi r25, 0x00 ; 0
if (bit_is_set(PINB,1)) {RES="1";}
c6: b1 9b sbis 0x16, 1 ; 22
c8: 02 c0 rjmp .+4 ; 0xce <getkey+0x6c>
ca: 82 e7 ldi r24, 0x72 ; 114
cc: 90 e0 ldi r25, 0x00 ; 0
if (bit_is_set(PINB,2)) {RES="B";}
ce: b2 9b sbis 0x16, 2 ; 22
d0: 02 c0 rjmp .+4 ; 0xd6 <getkey+0x74>
d2: 84 e7 ldi r24, 0x74 ; 116
d4: 90 e0 ldi r25, 0x00 ; 0
if (bit_is_set(PINB,3)) {RES="3";}
d6: b3 9b sbis 0x16, 3 ; 22
d8: 02 c0 rjmp .+4 ; 0xde <getkey+0x7c>
da: 86 e7 ldi r24, 0x76 ; 118
dc: 90 e0 ldi r25, 0x00 ; 0
PORTD&=~_BV(6);
de: 96 98 cbi 0x12, 6 ; 18
PORTD|=_BV(7);
e0: 97 9a sbi 0x12, 7 ; 18
e2: 9d e0 ldi r25, 0x0D ; 13
e4: 9a 95 dec r25
e6: f1 f7 brne .-4 ; 0xe4 <getkey+0x82>
_delay_us(10);
if (bit_is_set(PINB,0)) {RES="0";}
e8: b0 9b sbis 0x16, 0 ; 22
ea: 02 c0 rjmp .+4 ; 0xf0 <getkey+0x8e>
ec: 88 e7 ldi r24, 0x78 ; 120
ee: 90 e0 ldi r25, 0x00 ; 0
if (bit_is_set(PINB,1)) {RES="A";}
f0: b1 9b sbis 0x16, 1 ; 22
f2: 02 c0 rjmp .+4 ; 0xf8 <getkey+0x96>
f4: 8a e7 ldi r24, 0x7A ; 122
f6: 90 e0 ldi r25, 0x00 ; 0
if (bit_is_set(PINB,2)) {RES=" ";}
f8: b2 9b sbis 0x16, 2 ; 22
fa: 02 c0 rjmp .+4 ; 0x100 <getkey+0x9e>
fc: 8c e7 ldi r24, 0x7C ; 124
fe: 90 e0 ldi r25, 0x00 ; 0
if (bit_is_set(PINB,3)) {RES="E";}
100: b3 9b sbis 0x16, 3 ; 22
102: 02 c0 rjmp .+4 ; 0x108 <getkey+0xa6>
104: 8e e7 ldi r24, 0x7E ; 126
106: 90 e0 ldi r25, 0x00 ; 0
PORTD&=~_BV(7);
108: 97 98 cbi 0x12, 7 ; 18
return(RES);
}
10a: 08 95 ret
0000010c <ecrit_instr_lcd>:
void ecrit_instr_lcd(unsigned char instr)
{
unsigned char instr_tmp = 0x00;
LCD&=~_BV(0);
10c: a8 98 cbi 0x15, 0 ; 21
LCD|=_BV(1);
10e: a9 9a sbi 0x15, 1 ; 21
instr_tmp = instr;
instr_tmp &= 0xF0;
110: 98 2f mov r25, r24
112: 90 7f andi r25, 0xF0 ; 240
instr_tmp = instr_tmp>>2;
114: 96 95 lsr r25
116: 96 95 lsr r25
instr_tmp |= 0x02;
instr_tmp &= 0xFE;
118: 92 60 ori r25, 0x02 ; 2
LCD = instr_tmp;
11a: 95 bb out 0x15, r25 ; 21
milliseconds can be achieved.
*/
void
_delay_loop_2(uint16_t __count)
{
__asm__ volatile (
11c: 20 e9 ldi r18, 0x90 ; 144
11e: 31 e0 ldi r19, 0x01 ; 1
120: f9 01 movw r30, r18
122: 31 97 sbiw r30, 0x01 ; 1
124: f1 f7 brne .-4 ; 0x122 <ecrit_instr_lcd+0x16>
_delay_us(400);
LCD&=~_BV(1);
126: a9 98 cbi 0x15, 1 ; 21
instr_tmp=0x00;
LCD&=~_BV(0);
128: a8 98 cbi 0x15, 0 ; 21
LCD|=_BV(1);
12a: a9 9a sbi 0x15, 1 ; 21
instr_tmp = instr;
instr_tmp &= 0x0F;
12c: 8f 70 andi r24, 0x0F ; 15
instr_tmp = instr_tmp<<2;
12e: 88 0f add r24, r24
130: 88 0f add r24, r24
instr_tmp |= 0x02;
instr_tmp &= 0xFE;
132: 82 60 ori r24, 0x02 ; 2
LCD = instr_tmp;
134: 85 bb out 0x15, r24 ; 21
136: c9 01 movw r24, r18
138: 01 97 sbiw r24, 0x01 ; 1
13a: f1 f7 brne .-4 ; 0x138 <ecrit_instr_lcd+0x2c>
_delay_us(400);
LCD&=~_BV(1);
13c: a9 98 cbi 0x15, 1 ; 21
}
13e: 08 95 ret
00000140 <lcd_goto>:
void lcd_goto(unsigned char cell)
{
140: 0f 93 push r16
142: 1f 93 push r17
144: cf 93 push r28
146: df 93 push r29
148: 18 2f mov r17, r24
unsigned int i;
ecrit_instr_lcd (0x02);
14a: 82 e0 ldi r24, 0x02 ; 2
14c: df df rcall .-66 ; 0x10c <ecrit_instr_lcd>
14e: c1 e0 ldi r28, 0x01 ; 1
150: d0 e0 ldi r29, 0x00 ; 0
for (i = 1; i < cell; i++)
152: 01 2f mov r16, r17
154: 10 e0 ldi r17, 0x00 ; 0
156: 03 c0 rjmp .+6 ; 0x15e <lcd_goto+0x1e>
{
ecrit_instr_lcd (0x14);
158: 84 e1 ldi r24, 0x14 ; 20
15a: d8 df rcall .-80 ; 0x10c <ecrit_instr_lcd>
void lcd_goto(unsigned char cell)
{
unsigned int i;
ecrit_instr_lcd (0x02);
for (i = 1; i < cell; i++)
15c: 21 96 adiw r28, 0x01 ; 1
15e: c0 17 cp r28, r16
160: d1 07 cpc r29, r17
162: d0 f3 brcs .-12 ; 0x158 <lcd_goto+0x18>
{
ecrit_instr_lcd (0x14);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -