📄 main.lss
字号:
main.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 00000272 00000000 00000000 00000094 2**0
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 0000000a 00800060 00000272 00000306 2**0
CONTENTS, ALLOC, LOAD, DATA
2 .bss 00000006 0080006a 0080006a 00000310 2**0
ALLOC
3 .noinit 00000000 00800070 00800070 00000310 2**0
CONTENTS
4 .eeprom 00000000 00810000 00810000 00000310 2**0
CONTENTS
5 .stab 00000414 00000000 00000000 00000310 2**2
CONTENTS, READONLY, DEBUGGING
6 .stabstr 00000591 00000000 00000000 00000724 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 0c 94 2a 00 jmp 0x54
4: 0c 94 45 00 jmp 0x8a
8: 0c 94 45 00 jmp 0x8a
c: 0c 94 45 00 jmp 0x8a
10: 0c 94 45 00 jmp 0x8a
14: 0c 94 45 00 jmp 0x8a
18: 0c 94 45 00 jmp 0x8a
1c: 0c 94 45 00 jmp 0x8a
20: 0c 94 45 00 jmp 0x8a
24: 0c 94 45 00 jmp 0x8a
28: 0c 94 45 00 jmp 0x8a
2c: 0c 94 45 00 jmp 0x8a
30: 0c 94 45 00 jmp 0x8a
34: 0c 94 45 00 jmp 0x8a
38: 0c 94 7d 00 jmp 0xfa
3c: 0c 94 45 00 jmp 0x8a
40: 0c 94 45 00 jmp 0x8a
44: 0c 94 45 00 jmp 0x8a
48: 0c 94 45 00 jmp 0x8a
4c: 0c 94 45 00 jmp 0x8a
50: 0c 94 45 00 jmp 0x8a
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: e2 e7 ldi r30, 0x72 ; 114
68: f2 e0 ldi r31, 0x02 ; 2
6a: 02 c0 rjmp .+4 ; 0x70
0000006c <.do_copy_data_loop>:
6c: 05 90 lpm r0, Z+
6e: 0d 92 st X+, r0
00000070 <.do_copy_data_start>:
70: aa 36 cpi r26, 0x6A ; 106
72: b1 07 cpc r27, r17
74: d9 f7 brne .-10 ; 0x6c
00000076 <__do_clear_bss>:
76: 10 e0 ldi r17, 0x00 ; 0
78: aa e6 ldi r26, 0x6A ; 106
7a: b0 e0 ldi r27, 0x00 ; 0
7c: 01 c0 rjmp .+2 ; 0x80
0000007e <.do_clear_bss_loop>:
7e: 1d 92 st X+, r1
00000080 <.do_clear_bss_start>:
80: a0 37 cpi r26, 0x70 ; 112
82: b1 07 cpc r27, r17
84: e1 f7 brne .-8 ; 0x7e
86: 0c 94 e6 00 jmp 0x1cc
0000008a <__bad_interrupt>:
8a: 0c 94 00 00 jmp 0x0
0000008e <delay>:
uint8_t ledbuff[6]; /*显示缓冲*/
void delay(uint16_t time) /*延时*/
{
while(time>0)
time--;
8e: 00 97 sbiw r24, 0x00 ; 0
90: 11 f0 breq .+4 ; 0x96
92: 01 97 sbiw r24, 0x01 ; 1
94: fc cf rjmp .-8 ; 0x8e
96: 08 95 ret
00000098 <leddisplay>:
}
void leddisplay(void) /*数码管显示函数*/
{
98: cf 92 push r12
9a: df 92 push r13
9c: ff 92 push r15
9e: 0f 93 push r16
a0: 1f 93 push r17
a2: cf 93 push r28
a4: df 93 push r29
a6: 9a e6 ldi r25, 0x6A ; 106
a8: c9 2e mov r12, r25
aa: 90 e0 ldi r25, 0x00 ; 0
ac: d9 2e mov r13, r25
ae: c0 e0 ldi r28, 0x00 ; 0
b0: d0 e0 ldi r29, 0x00 ; 0
b2: 85 e0 ldi r24, 0x05 ; 5
b4: f8 2e mov r15, r24
uint8_t i;
for (i=0;i<6;i++)
{
PORTB=ledbuff[i]; /*需要显示缓冲区数据送到PORTB*/
b6: f6 01 movw r30, r12
b8: 81 91 ld r24, Z+
ba: 6f 01 movw r12, r30
bc: 88 bb out 0x18, r24 ; 24
PORTD=~(1<<i);
be: 01 e0 ldi r16, 0x01 ; 1
c0: 10 e0 ldi r17, 0x00 ; 0
c2: 0c 2e mov r0, r28
c4: 02 c0 rjmp .+4 ; 0xca
c6: 00 0f add r16, r16
c8: 11 1f adc r17, r17
ca: 0a 94 dec r0
cc: e2 f7 brpl .-8 ; 0xc6
ce: 80 2f mov r24, r16
d0: 80 95 com r24
d2: 82 bb out 0x12, r24 ; 18
delay(10); /*每一位显示保持一定时间*/
d4: 8a e0 ldi r24, 0x0A ; 10
d6: 90 e0 ldi r25, 0x00 ; 0
d8: 0e 94 47 00 call 0x8e
PORTD|=(1<<i); /*关 闭显示*/
dc: 82 b3 in r24, 0x12 ; 18
de: 80 2b or r24, r16
e0: 82 bb out 0x12, r24 ; 18
e2: fa 94 dec r15
e4: 21 96 adiw r28, 0x01 ; 1
e6: f7 fe sbrs r15, 7
e8: e6 cf rjmp .-52 ; 0xb6
ea: df 91 pop r29
ec: cf 91 pop r28
ee: 1f 91 pop r17
f0: 0f 91 pop r16
f2: ff 90 pop r15
f4: df 90 pop r13
f6: cf 90 pop r12
f8: 08 95 ret
000000fa <__vector_14>:
}
}
INTERRUPT(SIG_ADC) /*AD变换完成中断处理程序*/
{
fa: 78 94 sei
fc: 1f 92 push r1
fe: 0f 92 push r0
100: 0f b6 in r0, 0x3f ; 63
102: 0f 92 push r0
104: 11 24 eor r1, r1
106: 2f 93 push r18
108: 3f 93 push r19
10a: 4f 93 push r20
10c: 5f 93 push r21
10e: 6f 93 push r22
110: 7f 93 push r23
112: 8f 93 push r24
114: 9f 93 push r25
116: af 93 push r26
118: bf 93 push r27
11a: cf 93 push r28
11c: df 93 push r29
11e: ef 93 push r30
120: ff 93 push r31
unsigned int i,temp;
unsigned int lo_val, hi_val; /*转换寄存器的低位与高位*/
unsigned long val;
lo_val=ADCL; /*读出AD变换结果*/
122: 84 b1 in r24, 0x04 ; 4
124: 28 2f mov r18, r24
126: 33 27 eor r19, r19
hi_val=ADCH;
128: 85 b1 in r24, 0x05 ; 5
12a: 99 27 eor r25, r25
val=(((unsigned long)hi_val)<<8)|((unsigned long)lo_val); /*低8位和高8位数据合成16位*/
12c: aa 27 eor r26, r26
12e: bb 27 eor r27, r27
130: ba 2f mov r27, r26
132: a9 2f mov r26, r25
134: 98 2f mov r25, r24
136: 88 27 eor r24, r24
138: 44 27 eor r20, r20
13a: 55 27 eor r21, r21
13c: 82 2b or r24, r18
13e: 93 2b or r25, r19
140: a4 2b or r26, r20
142: b5 2b or r27, r21
temp=(unsigned int)((unsigned long)(val*vref)/1024); /*AD变换结果转换为电压值*/
144: bc 01 movw r22, r24
146: cd 01 movw r24, r26
148: 20 ef ldi r18, 0xF0 ; 240
14a: 31 e0 ldi r19, 0x01 ; 1
14c: 40 e0 ldi r20, 0x00 ; 0
14e: 50 e0 ldi r21, 0x00 ; 0
150: 0e 94 06 01 call 0x20c
154: dc 01 movw r26, r24
156: cb 01 movw r24, r22
158: 2a e0 ldi r18, 0x0A ; 10
15a: b6 95 lsr r27
15c: a7 95 ror r26
15e: 97 95 ror r25
160: 87 95 ror r24
162: 2a 95 dec r18
164: d1 f7 brne .-12 ; 0x15a
166: 9c 01 movw r18, r24
168: ca e6 ldi r28, 0x6A ; 106
16a: d0 e0 ldi r29, 0x00 ; 0
for(i=0;i<3;i++) /*分位显示*/
{
ledbuff[i]=ledcode[temp%10];
16c: c9 01 movw r24, r18
16e: 6a e0 ldi r22, 0x0A ; 10
170: 70 e0 ldi r23, 0x00 ; 0
172: 0e 94 25 01 call 0x24a
176: fc 01 movw r30, r24
178: e0 5a subi r30, 0xA0 ; 160
17a: ff 4f sbci r31, 0xFF ; 255
17c: 80 81 ld r24, Z
17e: 89 93 st Y+, r24
temp=temp/10;
180: c9 01 movw r24, r18
182: 6a e0 ldi r22, 0x0A ; 10
184: 70 e0 ldi r23, 0x00 ; 0
186: 0e 94 25 01 call 0x24a
18a: 9b 01 movw r18, r22
18c: 80 e0 ldi r24, 0x00 ; 0
18e: cc 36 cpi r28, 0x6C ; 108
190: d8 07 cpc r29, r24
192: 61 f3 breq .-40 ; 0x16c
194: 58 f3 brcs .-42 ; 0x16c
}
ledbuff[2]|=0x80; /*显示小数点*/
196: 80 91 6c 00 lds r24, 0x006C
19a: 80 68 ori r24, 0x80 ; 128
19c: 80 93 6c 00 sts 0x006C, r24
ADCSR|=(1<<ADSC); /*启动下一次AD转换 */
1a0: 36 9a sbi 0x06, 6 ; 6
leddisplay();
1a2: 0e 94 4c 00 call 0x98
1a6: ff 91 pop r31
1a8: ef 91 pop r30
1aa: df 91 pop r29
1ac: cf 91 pop r28
1ae: bf 91 pop r27
1b0: af 91 pop r26
1b2: 9f 91 pop r25
1b4: 8f 91 pop r24
1b6: 7f 91 pop r23
1b8: 6f 91 pop r22
1ba: 5f 91 pop r21
1bc: 4f 91 pop r20
1be: 3f 91 pop r19
1c0: 2f 91 pop r18
1c2: 0f 90 pop r0
1c4: 0f be out 0x3f, r0 ; 63
1c6: 0f 90 pop r0
1c8: 1f 90 pop r1
1ca: 18 95 reti
000001cc <main>:
}
int main( void )
{
1cc: cf e5 ldi r28, 0x5F ; 95
1ce: d4 e0 ldi r29, 0x04 ; 4
1d0: de bf out 0x3e, r29 ; 62
1d2: cd bf out 0x3d, r28 ; 61
DDRD=0x3f;
1d4: 8f e3 ldi r24, 0x3F ; 63
1d6: 81 bb out 0x11, r24 ; 17
PORTD=0xff;
1d8: 8f ef ldi r24, 0xFF ; 255
1da: 82 bb out 0x12, r24 ; 18
DDRB=0xff;
1dc: 87 bb out 0x17, r24 ; 23
PORTB=0xff; /*I/O口初始化*/
1de: 88 bb out 0x18, r24 ; 24
1e0: 90 91 60 00 lds r25, 0x0060
1e4: ea e6 ldi r30, 0x6A ; 106
1e6: f0 e0 ldi r31, 0x00 ; 0
1e8: 82 e0 ldi r24, 0x02 ; 2
uint8_t i;
for(i=0;i<3;i++) /*清空缓冲区数据 */
ledbuff[i]=ledcode[0];
1ea: 91 93 st Z+, r25
1ec: 81 50 subi r24, 0x01 ; 1
1ee: 87 ff sbrs r24, 7
1f0: fc cf rjmp .-8 ; 0x1ea
ledbuff[3]=0x00;
1f2: 10 92 6d 00 sts 0x006D, r1
ledbuff[4]=0x5e; /*显示'd'*/
1f6: 8e e5 ldi r24, 0x5E ; 94
1f8: 80 93 6e 00 sts 0x006E, r24
ledbuff[5]=0x77; /*显示'A' */
1fc: 87 e7 ldi r24, 0x77 ; 119
1fe: 80 93 6f 00 sts 0x006F, r24
ADMUX =0x00; //ADC寄存器初始化
202: 17 b8 out 0x07, r1 ; 7
ADCSR=(1<<ADEN)|(1<<ADSC)|(1<<ADIF)|(1<<ADIE)|0X06;
204: 8e ed ldi r24, 0xDE ; 222
206: 86 b9 out 0x06, r24 ; 6
sei();
208: 78 94 sei
for(;;){};
20a: ff cf rjmp .-2 ; 0x20a
0000020c <__mulsi3>:
20c: 62 9f mul r22, r18
20e: d0 01 movw r26, r0
210: 73 9f mul r23, r19
212: f0 01 movw r30, r0
214: 82 9f mul r24, r18
216: e0 0d add r30, r0
218: f1 1d adc r31, r1
21a: 64 9f mul r22, r20
21c: e0 0d add r30, r0
21e: f1 1d adc r31, r1
220: 92 9f mul r25, r18
222: f0 0d add r31, r0
224: 83 9f mul r24, r19
226: f0 0d add r31, r0
228: 74 9f mul r23, r20
22a: f0 0d add r31, r0
22c: 65 9f mul r22, r21
22e: f0 0d add r31, r0
230: 99 27 eor r25, r25
232: 72 9f mul r23, r18
234: b0 0d add r27, r0
236: e1 1d adc r30, r1
238: f9 1f adc r31, r25
23a: 63 9f mul r22, r19
23c: b0 0d add r27, r0
23e: e1 1d adc r30, r1
240: f9 1f adc r31, r25
242: bd 01 movw r22, r26
244: cf 01 movw r24, r30
246: 11 24 eor r1, r1
248: 08 95 ret
0000024a <__udivmodhi4>:
24a: aa 1b sub r26, r26
24c: bb 1b sub r27, r27
24e: 51 e1 ldi r21, 0x11 ; 17
250: 07 c0 rjmp .+14 ; 0x260
00000252 <__udivmodhi4_loop>:
252: aa 1f adc r26, r26
254: bb 1f adc r27, r27
256: a6 17 cp r26, r22
258: b7 07 cpc r27, r23
25a: 10 f0 brcs .+4 ; 0x260
25c: a6 1b sub r26, r22
25e: b7 0b sbc r27, r23
00000260 <__udivmodhi4_ep>:
260: 88 1f adc r24, r24
262: 99 1f adc r25, r25
264: 5a 95 dec r21
266: a9 f7 brne .-22 ; 0x252
268: 80 95 com r24
26a: 90 95 com r25
26c: bc 01 movw r22, r24
26e: cd 01 movw r24, r26
270: 08 95 ret
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -