📄 main.lss
字号:
main.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 0000006c 00000000 00000000 00000054 2**1
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .debug_aranges 00000020 00000000 00000000 000000c0 2**0
CONTENTS, READONLY, DEBUGGING
2 .debug_pubnames 0000003b 00000000 00000000 000000e0 2**0
CONTENTS, READONLY, DEBUGGING
3 .debug_info 000000ff 00000000 00000000 0000011b 2**0
CONTENTS, READONLY, DEBUGGING
4 .debug_abbrev 000000cf 00000000 00000000 0000021a 2**0
CONTENTS, READONLY, DEBUGGING
5 .debug_line 000000ed 00000000 00000000 000002e9 2**0
CONTENTS, READONLY, DEBUGGING
6 .debug_frame 00000050 00000000 00000000 000003d8 2**2
CONTENTS, READONLY, DEBUGGING
7 .debug_str 0000007e 00000000 00000000 00000428 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 12 c0 rjmp .+36 ; 0x26 <__ctors_end>
2: 19 c0 rjmp .+50 ; 0x36 <__bad_interrupt>
4: 18 c0 rjmp .+48 ; 0x36 <__bad_interrupt>
6: 17 c0 rjmp .+46 ; 0x36 <__bad_interrupt>
8: 16 c0 rjmp .+44 ; 0x36 <__bad_interrupt>
a: 15 c0 rjmp .+42 ; 0x36 <__bad_interrupt>
c: 14 c0 rjmp .+40 ; 0x36 <__bad_interrupt>
e: 13 c0 rjmp .+38 ; 0x36 <__bad_interrupt>
10: 12 c0 rjmp .+36 ; 0x36 <__bad_interrupt>
12: 11 c0 rjmp .+34 ; 0x36 <__bad_interrupt>
14: 10 c0 rjmp .+32 ; 0x36 <__bad_interrupt>
16: 0f c0 rjmp .+30 ; 0x36 <__bad_interrupt>
18: 0e c0 rjmp .+28 ; 0x36 <__bad_interrupt>
1a: 0d c0 rjmp .+26 ; 0x36 <__bad_interrupt>
1c: 0c c0 rjmp .+24 ; 0x36 <__bad_interrupt>
1e: 0b c0 rjmp .+22 ; 0x36 <__bad_interrupt>
20: 0a c0 rjmp .+20 ; 0x36 <__bad_interrupt>
22: 09 c0 rjmp .+18 ; 0x36 <__bad_interrupt>
24: 08 c0 rjmp .+16 ; 0x36 <__bad_interrupt>
00000026 <__ctors_end>:
26: 11 24 eor r1, r1
28: 1f be out 0x3f, r1 ; 63
2a: cf e5 ldi r28, 0x5F ; 95
2c: d4 e0 ldi r29, 0x04 ; 4
2e: de bf out 0x3e, r29 ; 62
30: cd bf out 0x3d, r28 ; 61
32: 0e d0 rcall .+28 ; 0x50 <main>
34: 19 c0 rjmp .+50 ; 0x68 <_exit>
00000036 <__bad_interrupt>:
36: e4 cf rjmp .-56 ; 0x0 <__vectors>
00000038 <putc>:
#define uchar unsigned char
#define uint unsigned int
void putc(uchar c)
{
while(!(UCSRA&(1<<UDRE)));//当
38: 5d 9b sbis 0x0b, 5 ; 11
3a: fe cf rjmp .-4 ; 0x38 <putc>
UDR=c;
3c: 8c b9 out 0x0c, r24 ; 12
}
3e: 08 95 ret
00000040 <getc>:
uchar getc(void)
{
while(!(UCSRA&(1<<RXC)));
40: 5f 9b sbis 0x0b, 7 ; 11
42: fe cf rjmp .-4 ; 0x40 <getc>
return UDR;
44: 8c b1 in r24, 0x0c ; 12
}
46: 08 95 ret
00000048 <uart_init>:
void uart_init()
{
UCSRA=0x00; //控制寄存器清零
48: 1b b8 out 0x0b, r1 ; 11
UCSRC=(1<<URSEL)|(0<<UPM0)|(3<<UCSZ0); //选择UCSRC,异步模式,禁止校验,1位停止位,8位数据位
4a: 86 e8 ldi r24, 0x86 ; 134
4c: 80 bd out 0x20, r24 ; 32
}
4e: 08 95 ret
00000050 <main>:
int main()
{
//UART 初始化;
UBRRH=0;
50: 10 bc out 0x20, r1 ; 32
UBRRL=71;//波特率设为9600;
52: 87 e4 ldi r24, 0x47 ; 71
54: 89 b9 out 0x09, r24 ; 9
UCSRB=(1<<RXEN)|(1<<TXEN);
56: 88 e1 ldi r24, 0x18 ; 24
58: 8a b9 out 0x0a, r24 ; 10
while(!(UCSRA&(1<<UDRE)));//当
UDR=c;
}
uchar getc(void)
{
while(!(UCSRA&(1<<RXC)));
5a: 5f 9b sbis 0x0b, 7 ; 11
5c: fe cf rjmp .-4 ; 0x5a <main+0xa>
return UDR;
5e: 8c b1 in r24, 0x0c ; 12
#define uchar unsigned char
#define uint unsigned int
void putc(uchar c)
{
while(!(UCSRA&(1<<UDRE)));//当
60: 5d 9b sbis 0x0b, 5 ; 11
62: fe cf rjmp .-4 ; 0x60 <main+0x10>
UDR=c;
64: 8c b9 out 0x0c, r24 ; 12
66: f9 cf rjmp .-14 ; 0x5a <main+0xa>
00000068 <_exit>:
68: f8 94 cli
0000006a <__stop_program>:
6a: ff cf rjmp .-2 ; 0x6a <__stop_program>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -