📄 main.lss
字号:
main.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .data 00000010 00800100 000001d8 0000024c 2**0
CONTENTS, ALLOC, LOAD, DATA
1 .text 000001d8 00000000 00000000 00000074 2**1
CONTENTS, ALLOC, LOAD, READONLY, CODE
2 .bss 00000001 00800110 000001e8 0000025c 2**0
ALLOC
3 .debug_aranges 00000020 00000000 00000000 0000025c 2**0
CONTENTS, READONLY, DEBUGGING
4 .debug_pubnames 00000066 00000000 00000000 0000027c 2**0
CONTENTS, READONLY, DEBUGGING
5 .debug_info 00000189 00000000 00000000 000002e2 2**0
CONTENTS, READONLY, DEBUGGING
6 .debug_abbrev 0000012d 00000000 00000000 0000046b 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_line 00000187 00000000 00000000 00000598 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_frame 00000050 00000000 00000000 00000720 2**2
CONTENTS, READONLY, DEBUGGING
9 .debug_str 000000a8 00000000 00000000 00000770 2**0
CONTENTS, READONLY, DEBUGGING
10 .debug_loc 00000036 00000000 00000000 00000818 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 0c 94 46 00 jmp 0x8c ; 0x8c <__ctors_end>
4: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
8: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
c: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
10: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
14: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
18: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
1c: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
20: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
24: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
28: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
2c: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
30: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
34: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
38: 0c 94 7f 00 jmp 0xfe ; 0xfe <__vector_14>
3c: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
40: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
44: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
48: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
4c: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
50: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
54: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
58: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
5c: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
60: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
64: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
68: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
6c: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
70: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
74: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
78: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
7c: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
80: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
84: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
88: 0c 94 65 00 jmp 0xca ; 0xca <__bad_interrupt>
0000008c <__ctors_end>:
8c: 11 24 eor r1, r1
8e: 1f be out 0x3f, r1 ; 63
90: cf ef ldi r28, 0xFF ; 255
92: d0 e1 ldi r29, 0x10 ; 16
94: de bf out 0x3e, r29 ; 62
96: cd bf out 0x3d, r28 ; 61
00000098 <__do_copy_data>:
98: 11 e0 ldi r17, 0x01 ; 1
9a: a0 e0 ldi r26, 0x00 ; 0
9c: b1 e0 ldi r27, 0x01 ; 1
9e: e8 ed ldi r30, 0xD8 ; 216
a0: f1 e0 ldi r31, 0x01 ; 1
a2: 00 e0 ldi r16, 0x00 ; 0
a4: 0b bf out 0x3b, r16 ; 59
a6: 02 c0 rjmp .+4 ; 0xac <__do_copy_data+0x14>
a8: 07 90 elpm r0, Z+
aa: 0d 92 st X+, r0
ac: a0 31 cpi r26, 0x10 ; 16
ae: b1 07 cpc r27, r17
b0: d9 f7 brne .-10 ; 0xa8 <__do_copy_data+0x10>
000000b2 <__do_clear_bss>:
b2: 11 e0 ldi r17, 0x01 ; 1
b4: a0 e1 ldi r26, 0x10 ; 16
b6: b1 e0 ldi r27, 0x01 ; 1
b8: 01 c0 rjmp .+2 ; 0xbc <.do_clear_bss_start>
000000ba <.do_clear_bss_loop>:
ba: 1d 92 st X+, r1
000000bc <.do_clear_bss_start>:
bc: a1 31 cpi r26, 0x11 ; 17
be: b1 07 cpc r27, r17
c0: e1 f7 brne .-8 ; 0xba <.do_clear_bss_loop>
c2: 0e 94 a7 00 call 0x14e ; 0x14e <main>
c6: 0c 94 ea 00 jmp 0x1d4 ; 0x1d4 <_exit>
000000ca <__bad_interrupt>:
ca: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
000000ce <display_one_smg>:
参 数: number--显示的内容(0-15)
position--指定的数码管(1-6)
返回值 : 无
*/
void display_one_smg(uchar num,uchar pos)
{
ce: 92 b3 in r25, 0x12 ; 18
d0: 9f 70 andi r25, 0x0F ; 15
d2: 92 bb out 0x12, r25 ; 18
//SMG_INIT();
PORTD &= 0x0F;
PORTC = ~SEGMENT[num];
d4: e0 e0 ldi r30, 0x00 ; 0
d6: f1 e0 ldi r31, 0x01 ; 1
d8: e8 0f add r30, r24
da: f1 1d adc r31, r1
dc: 80 81 ld r24, Z
de: 80 95 com r24
e0: 85 bb out 0x15, r24 ; 21
PORTD = (PORTD|(1<<(pos+4)));
e2: 22 b3 in r18, 0x12 ; 18
e4: 70 e0 ldi r23, 0x00 ; 0
e6: 6c 5f subi r22, 0xFC ; 252
e8: 7f 4f sbci r23, 0xFF ; 255
ea: 81 e0 ldi r24, 0x01 ; 1
ec: 90 e0 ldi r25, 0x00 ; 0
ee: 02 c0 rjmp .+4 ; 0xf4 <display_one_smg+0x26>
f0: 88 0f add r24, r24
f2: 99 1f adc r25, r25
f4: 6a 95 dec r22
f6: e2 f7 brpl .-8 ; 0xf0 <display_one_smg+0x22>
f8: 28 2b or r18, r24
fa: 22 bb out 0x12, r18 ; 18
}
fc: 08 95 ret
000000fe <__vector_14>:
//定时器1溢出中断1服务程序
SIGNAL(SIG_OVERFLOW1)
{
fe: 1f 92 push r1
100: 0f 92 push r0
102: 0f b6 in r0, 0x3f ; 63
104: 0f 92 push r0
106: 11 24 eor r1, r1
108: 8f 93 push r24
TCNT1H=0X57;
10a: 87 e5 ldi r24, 0x57 ; 87
10c: 8d bd out 0x2d, r24 ; 45
TCNT1L=0X3F;//初值装入
10e: 8f e3 ldi r24, 0x3F ; 63
110: 8c bd out 0x2c, r24 ; 44
// while(!(TIFR&0X04));//检测溢出标志
number++;
112: 80 91 10 01 lds r24, 0x0110
116: 8f 5f subi r24, 0xFF ; 255
118: 80 93 10 01 sts 0x0110, r24
if(number==60)
11c: 80 91 10 01 lds r24, 0x0110
120: 8c 33 cpi r24, 0x3C ; 60
122: 11 f4 brne .+4 ; 0x128 <__vector_14+0x2a>
{
number=0;
124: 10 92 10 01 sts 0x0110, r1
}
}
128: 8f 91 pop r24
12a: 0f 90 pop r0
12c: 0f be out 0x3f, r0 ; 63
12e: 0f 90 pop r0
130: 1f 90 pop r1
132: 18 95 reti
00000134 <timer1_inti>:
//定时器初始化函数
void timer1_inti(void)
{
134: 1e bc out 0x2e, r1 ; 46
TCCR1B=0X00;//停止定时器1
TCNT1H=0X57;//初值装入
136: 87 e5 ldi r24, 0x57 ; 87
138: 8d bd out 0x2d, r24 ; 45
TCNT1L=0X3F;
13a: 8f e3 ldi r24, 0x3F ; 63
13c: 8c bd out 0x2c, r24 ; 44
TCCR1A=0X00;
13e: 1f bc out 0x2f, r1 ; 47
TCCR1B=0X04;//256分频,启动定时器1
140: 84 e0 ldi r24, 0x04 ; 4
142: 8e bd out 0x2e, r24 ; 46
TIMSK|=0x04;
144: 87 b7 in r24, 0x37 ; 55
146: 84 60 ori r24, 0x04 ; 4
148: 87 bf out 0x37, r24 ; 55
//SREG|=0x80;
sei();
14a: 78 94 sei
}
14c: 08 95 ret
0000014e <main>:
int main(void)
{
14e: 84 b3 in r24, 0x14 ; 20
150: 8f ef ldi r24, 0xFF ; 255
152: 84 bb out 0x14, r24 ; 20
154: 81 b3 in r24, 0x11 ; 17
156: 80 6f ori r24, 0xF0 ; 240
158: 81 bb out 0x11, r24 ; 17
}
}
//定时器初始化函数
void timer1_inti(void)
{
TCCR1B=0X00;//停止定时器1
15a: 1e bc out 0x2e, r1 ; 46
TCNT1H=0X57;//初值装入
15c: 87 e5 ldi r24, 0x57 ; 87
15e: 8d bd out 0x2d, r24 ; 45
TCNT1L=0X3F;
160: 8f e3 ldi r24, 0x3F ; 63
162: 8c bd out 0x2c, r24 ; 44
TCCR1A=0X00;
164: 1f bc out 0x2f, r1 ; 47
TCCR1B=0X04;//256分频,启动定时器1
166: 84 e0 ldi r24, 0x04 ; 4
168: 8e bd out 0x2e, r24 ; 46
TIMSK|=0x04;
16a: 87 b7 in r24, 0x37 ; 55
16c: 84 60 ori r24, 0x04 ; 4
16e: 87 bf out 0x37, r24 ; 55
//SREG|=0x80;
sei();
170: 78 94 sei
int main(void)
{
unsigned char rt;
SMG_INIT();
timer1_inti();
number = 0;
172: 10 92 10 01 sts 0x0110, r1
while(1)
{
rt = number;
176: 20 91 10 01 lds r18, 0x0110
PORTD|=0X0F;//PD口清零
17a: 82 b3 in r24, 0x12 ; 18
17c: 8f 60 ori r24, 0x0F ; 15
17e: 82 bb out 0x12, r24 ; 18
返回值 : 无
*/
void display_one_smg(uchar num,uchar pos)
{
//SMG_INIT();
PORTD &= 0x0F;
180: 82 b3 in r24, 0x12 ; 18
182: 8f 70 andi r24, 0x0F ; 15
184: 82 bb out 0x12, r24 ; 18
PORTC = ~SEGMENT[num];
186: 82 2f mov r24, r18
188: 6a e0 ldi r22, 0x0A ; 10
18a: 0e 94 de 00 call 0x1bc ; 0x1bc <__udivmodqi4>
18e: e8 2f mov r30, r24
190: f0 e0 ldi r31, 0x00 ; 0
192: e0 50 subi r30, 0x00 ; 0
194: ff 4f sbci r31, 0xFF ; 255
196: 80 81 ld r24, Z
198: 80 95 com r24
19a: 85 bb out 0x15, r24 ; 21
PORTD = (PORTD|(1<<(pos+4)));
19c: 95 9a sbi 0x12, 5 ; 18
返回值 : 无
*/
void display_one_smg(uchar num,uchar pos)
{
//SMG_INIT();
PORTD &= 0x0F;
19e: 82 b3 in r24, 0x12 ; 18
1a0: 8f 70 andi r24, 0x0F ; 15
1a2: 82 bb out 0x12, r24 ; 18
PORTC = ~SEGMENT[num];
1a4: 82 2f mov r24, r18
1a6: 0e 94 de 00 call 0x1bc ; 0x1bc <__udivmodqi4>
1aa: e9 2f mov r30, r25
1ac: f0 e0 ldi r31, 0x00 ; 0
1ae: e0 50 subi r30, 0x00 ; 0
1b0: ff 4f sbci r31, 0xFF ; 255
1b2: 80 81 ld r24, Z
1b4: 80 95 com r24
1b6: 85 bb out 0x15, r24 ; 21
PORTD = (PORTD|(1<<(pos+4)));
1b8: 94 9a sbi 0x12, 4 ; 18
1ba: dd cf rjmp .-70 ; 0x176 <main+0x28>
000001bc <__udivmodqi4>:
1bc: 99 1b sub r25, r25
1be: 79 e0 ldi r23, 0x09 ; 9
1c0: 04 c0 rjmp .+8 ; 0x1ca <__udivmodqi4_ep>
000001c2 <__udivmodqi4_loop>:
1c2: 99 1f adc r25, r25
1c4: 96 17 cp r25, r22
1c6: 08 f0 brcs .+2 ; 0x1ca <__udivmodqi4_ep>
1c8: 96 1b sub r25, r22
000001ca <__udivmodqi4_ep>:
1ca: 88 1f adc r24, r24
1cc: 7a 95 dec r23
1ce: c9 f7 brne .-14 ; 0x1c2 <__udivmodqi4_loop>
1d0: 80 95 com r24
1d2: 08 95 ret
000001d4 <_exit>:
1d4: f8 94 cli
000001d6 <__stop_program>:
1d6: ff cf rjmp .-2 ; 0x1d6 <__stop_program>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -