📄 main.lss
字号:
main.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .data 00000004 00800100 00000834 000008c8 2**0
CONTENTS, ALLOC, LOAD, DATA
1 .text 00000834 00000000 00000000 00000094 2**0
CONTENTS, ALLOC, LOAD, READONLY, CODE
2 .bss 00000021 00800104 00800104 000008cc 2**0
ALLOC
3 .noinit 00000000 00800125 00800125 000008cc 2**0
CONTENTS
4 .eeprom 00000000 00810000 00810000 000008cc 2**0
CONTENTS
5 .stab 0000036c 00000000 00000000 000008cc 2**2
CONTENTS, READONLY, DEBUGGING
6 .stabstr 00000084 00000000 00000000 00000c38 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_aranges 00000014 00000000 00000000 00000cbc 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_pubnames 00000190 00000000 00000000 00000cd0 2**0
CONTENTS, READONLY, DEBUGGING
9 .debug_info 0000038b 00000000 00000000 00000e60 2**0
CONTENTS, READONLY, DEBUGGING
10 .debug_abbrev 0000013c 00000000 00000000 000011eb 2**0
CONTENTS, READONLY, DEBUGGING
11 .debug_line 0000046f 00000000 00000000 00001327 2**0
CONTENTS, READONLY, DEBUGGING
12 .debug_str 00000163 00000000 00000000 00001796 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 19 c0 rjmp .+50 ; 0x34 <__ctors_end>
2: 32 c0 rjmp .+100 ; 0x68 <__bad_interrupt>
4: 31 c0 rjmp .+98 ; 0x68 <__bad_interrupt>
6: 30 c0 rjmp .+96 ; 0x68 <__bad_interrupt>
8: 2f c0 rjmp .+94 ; 0x68 <__bad_interrupt>
a: 2e c0 rjmp .+92 ; 0x68 <__bad_interrupt>
c: 2d c0 rjmp .+90 ; 0x68 <__bad_interrupt>
e: 2c c0 rjmp .+88 ; 0x68 <__bad_interrupt>
10: 2b c0 rjmp .+86 ; 0x68 <__bad_interrupt>
12: 2a c0 rjmp .+84 ; 0x68 <__bad_interrupt>
14: 29 c0 rjmp .+82 ; 0x68 <__bad_interrupt>
16: 28 c0 rjmp .+80 ; 0x68 <__bad_interrupt>
18: 27 c0 rjmp .+78 ; 0x68 <__bad_interrupt>
1a: 26 c0 rjmp .+76 ; 0x68 <__bad_interrupt>
1c: 25 c0 rjmp .+74 ; 0x68 <__bad_interrupt>
1e: 24 c0 rjmp .+72 ; 0x68 <__bad_interrupt>
20: 90 c0 rjmp .+288 ; 0x142 <__vector_16>
22: 22 c0 rjmp .+68 ; 0x68 <__bad_interrupt>
24: 21 c0 rjmp .+66 ; 0x68 <__bad_interrupt>
26: 20 c0 rjmp .+64 ; 0x68 <__bad_interrupt>
28: 1f c0 rjmp .+62 ; 0x68 <__bad_interrupt>
2a: 1e c0 rjmp .+60 ; 0x68 <__bad_interrupt>
2c: 1d c0 rjmp .+58 ; 0x68 <__bad_interrupt>
2e: 1c c0 rjmp .+56 ; 0x68 <__bad_interrupt>
30: 1b c0 rjmp .+54 ; 0x68 <__bad_interrupt>
32: 1a c0 rjmp .+52 ; 0x68 <__bad_interrupt>
00000034 <__ctors_end>:
34: 11 24 eor r1, r1
36: 1f be out 0x3f, r1 ; 63
38: cf ef ldi r28, 0xFF ; 255
3a: d2 e0 ldi r29, 0x02 ; 2
3c: de bf out 0x3e, r29 ; 62
3e: cd bf out 0x3d, r28 ; 61
00000040 <__do_copy_data>:
40: 11 e0 ldi r17, 0x01 ; 1
42: a0 e0 ldi r26, 0x00 ; 0
44: b1 e0 ldi r27, 0x01 ; 1
46: e4 e3 ldi r30, 0x34 ; 52
48: f8 e0 ldi r31, 0x08 ; 8
4a: 02 c0 rjmp .+4 ; 0x50 <.do_copy_data_start>
0000004c <.do_copy_data_loop>:
4c: 05 90 lpm r0, Z+
4e: 0d 92 st X+, r0
00000050 <.do_copy_data_start>:
50: a4 30 cpi r26, 0x04 ; 4
52: b1 07 cpc r27, r17
54: d9 f7 brne .-10 ; 0x4c <.do_copy_data_loop>
00000056 <__do_clear_bss>:
56: 11 e0 ldi r17, 0x01 ; 1
58: a4 e0 ldi r26, 0x04 ; 4
5a: b1 e0 ldi r27, 0x01 ; 1
5c: 01 c0 rjmp .+2 ; 0x60 <.do_clear_bss_start>
0000005e <.do_clear_bss_loop>:
5e: 1d 92 st X+, r1
00000060 <.do_clear_bss_start>:
60: a5 32 cpi r26, 0x25 ; 37
62: b1 07 cpc r27, r17
64: e1 f7 brne .-8 ; 0x5e <.do_clear_bss_loop>
66: 97 c2 rjmp .+1326 ; 0x596 <main>
00000068 <__bad_interrupt>:
68: cb cf rjmp .-106 ; 0x0 <__vectors>
0000006a <AD>:
//****************AD
unsigned char adjs=0;
void AD(unsigned int *adsj)
{
6a: fc 01 movw r30, r24
if(ADCSRA&16)
6c: 80 91 7a 00 lds r24, 0x007A
70: 84 ff sbrs r24, 4
72: 3e c0 rjmp .+124 ; 0xf0 <AD+0x86>
{
asm("WDR");
74: a8 95 wdr
switch(adjs)
76: 80 91 1a 01 lds r24, 0x011A
7a: 99 27 eor r25, r25
7c: 81 30 cpi r24, 0x01 ; 1
7e: 91 05 cpc r25, r1
80: a1 f0 breq .+40 ; 0xaa <AD+0x40>
82: 82 30 cpi r24, 0x02 ; 2
84: 91 05 cpc r25, r1
86: 1c f4 brge .+6 ; 0x8e <AD+0x24>
88: 89 2b or r24, r25
8a: 21 f0 breq .+8 ; 0x94 <AD+0x2a>
8c: 27 c0 rjmp .+78 ; 0xdc <AD+0x72>
8e: 02 97 sbiw r24, 0x02 ; 2
90: c9 f0 breq .+50 ; 0xc4 <AD+0x5a>
92: 24 c0 rjmp .+72 ; 0xdc <AD+0x72>
{
case 0:
{
*adsj=ADC; //读取AD0
94: 80 91 78 00 lds r24, 0x0078
98: 90 91 79 00 lds r25, 0x0079
9c: 91 83 std Z+1, r25 ; 0x01
9e: 80 83 st Z, r24
ADMUX=0B11000001;
a0: 81 ec ldi r24, 0xC1 ; 193
a2: 80 93 7c 00 sts 0x007C, r24
adjs=1;
a6: 81 e0 ldi r24, 0x01 ; 1
a8: 0a c0 rjmp .+20 ; 0xbe <AD+0x54>
}
break;
case 1:
{
*(adsj+1)=ADC; //AD1
aa: 80 91 78 00 lds r24, 0x0078
ae: 90 91 79 00 lds r25, 0x0079
b2: 93 83 std Z+3, r25 ; 0x03
b4: 82 83 std Z+2, r24 ; 0x02
ADMUX=0B11000010;
b6: 82 ec ldi r24, 0xC2 ; 194
b8: 80 93 7c 00 sts 0x007C, r24
adjs=2;
bc: 82 e0 ldi r24, 0x02 ; 2
be: 80 93 1a 01 sts 0x011A, r24
}
break;
c2: 11 c0 rjmp .+34 ; 0xe6 <AD+0x7c>
case 2:
{
*(adsj+2)=ADC; //AD1
c4: 80 91 78 00 lds r24, 0x0078
c8: 90 91 79 00 lds r25, 0x0079
cc: 95 83 std Z+5, r25 ; 0x05
ce: 84 83 std Z+4, r24 ; 0x04
ADMUX=0B11000000;
d0: 80 ec ldi r24, 0xC0 ; 192
d2: 80 93 7c 00 sts 0x007C, r24
adjs=0;
d6: 10 92 1a 01 sts 0x011A, r1
}
break;
da: 05 c0 rjmp .+10 ; 0xe6 <AD+0x7c>
default: {adjs=0; ADMUX=0B11000000; }
dc: 10 92 1a 01 sts 0x011A, r1
e0: 80 ec ldi r24, 0xC0 ; 192
e2: 80 93 7c 00 sts 0x007C, r24
}
ADCSRA|=16+64; //清除完成标志 同时启动转换开始
e6: 80 91 7a 00 lds r24, 0x007A
ea: 80 65 ori r24, 0x50 ; 80
ec: 80 93 7a 00 sts 0x007A, r24
f0: 08 95 ret
000000f2 <yanshi>:
void yanshi(unsigned int x)
{
unsigned int y;
for(y=0;y<x;y++);
f2: 20 e0 ldi r18, 0x00 ; 0
f4: 30 e0 ldi r19, 0x00 ; 0
f6: 28 17 cp r18, r24
f8: 39 07 cpc r19, r25
fa: 18 f4 brcc .+6 ; 0x102 <yanshi+0x10>
fc: 2f 5f subi r18, 0xFF ; 255
fe: 3f 4f sbci r19, 0xFF ; 255
100: fa cf rjmp .-12 ; 0xf6 <yanshi+0x4>
102: 08 95 ret
00000104 <shengyin>:
}
void shengyin(unsigned char x)
{
104: 0f 93 push r16
106: 1f 93 push r17
108: cf 93 push r28
10a: df 93 push r29
10c: 08 2f mov r16, r24
unsigned char cishu=0;
10e: 10 e0 ldi r17, 0x00 ; 0
unsigned int changdu=0;
for(cishu=0;cishu<x;cishu++)
110: 18 17 cp r17, r24
112: 90 f4 brcc .+36 ; 0x138 <shengyin+0x34>
114: c7 e5 ldi r28, 0x57 ; 87
116: d2 e0 ldi r29, 0x02 ; 2
{
for(changdu=0;changdu<600;changdu++)
{
yanshi(31);
118: 8f e1 ldi r24, 0x1F ; 31
11a: 90 e0 ldi r25, 0x00 ; 0
11c: ea df rcall .-44 ; 0xf2 <yanshi>
PORTD^=32; //声音
11e: 8b b1 in r24, 0x0b ; 11
120: 90 e2 ldi r25, 0x20 ; 32
122: 89 27 eor r24, r25
124: 8b b9 out 0x0b, r24 ; 11
126: 21 97 sbiw r28, 0x01 ; 1
128: d7 ff sbrs r29, 7
12a: f6 cf rjmp .-20 ; 0x118 <shengyin+0x14>
}
yanshi(40000);
12c: 80 e4 ldi r24, 0x40 ; 64
12e: 9c e9 ldi r25, 0x9C ; 156
130: e0 df rcall .-64 ; 0xf2 <yanshi>
132: 1f 5f subi r17, 0xFF ; 255
134: 10 17 cp r17, r16
136: 70 f3 brcs .-36 ; 0x114 <shengyin+0x10>
138: df 91 pop r29
13a: cf 91 pop r28
13c: 1f 91 pop r17
13e: 0f 91 pop r16
140: 08 95 ret
00000142 <__vector_16>:
}
}
unsigned char tem=0,tem10=0,tem100=0,tem1000=0;
unsigned char x=0;
SIGNAL(SIG_OVERFLOW0) //TO中断服务程序
{
142: 1f 92 push r1
144: 0f 92 push r0
146: 0f b6 in r0, 0x3f ; 63
148: 0f 92 push r0
14a: 11 24 eor r1, r1
14c: 8f 93 push r24
TCNT0=255-78; // 10MS
14e: 81 eb ldi r24, 0xB1 ; 177
150: 86 bd out 0x26, r24 ; 38
tem+=1;
152: 80 91 19 01 lds r24, 0x0119
156: 8f 5f subi r24, 0xFF ; 255
158: 80 93 19 01 sts 0x0119, r24
15c: 8f 91 pop r24
15e: 0f 90 pop r0
160: 0f be out 0x3f, r0 ; 63
162: 0f 90 pop r0
164: 1f 90 pop r1
166: 18 95 reti
00000168 <chushi>:
}
/*
SIGNAL(SIG_OVERFLOW2) //T2中断服务程序
{
}
SIGNAL(SIG_UART_RECV) //接收中断
{
}
SIGNAL(SIG_UART_TRANS) //发送完成中断
{
}
*/
void chushi(void)
{
//CLKPR=128;
//CLKPR=0;
WDTCSR=0B00011000;//KANMENGOU
168: 88 e1 ldi r24, 0x18 ; 24
16a: 80 93 60 00 sts 0x0060, r24
WDTCSR=0B00101000;//4sKANMENGOU 启动看门狗 4秒方式
16e: 88 e2 ldi r24, 0x28 ; 40
170: 80 93 60 00 sts 0x0060, r24
asm("WDR");
174: a8 95 wdr
DDRB=14+16; //pb =in 无上拉
176: 8e e1 ldi r24, 0x1E ; 30
178: 84 b9 out 0x04, r24 ; 4
PORTB=255-6;
17a: 89 ef ldi r24, 0xF9 ; 249
17c: 85 b9 out 0x05, r24 ; 5
DDRD=0; //
17e: 1a b8 out 0x0a, r1 ; 10
PORTD=255; //
180: 8f ef ldi r24, 0xFF ; 255
182: 8b b9 out 0x0b, r24 ; 11
DDRC=0; //ADC
184: 17 b8 out 0x07, r1 ; 7
PORTC=255-7;
186: 88 ef ldi r24, 0xF8 ; 248
188: 88 b9 out 0x08, r24 ; 8
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -