📄 main.lst
字号:
1 .file "main.c"
2 .arch attiny13
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
11 .text
12 .Ltext0:
73 .lcomm pulse.0,1
74 .lcomm envelope.1,2
75 .data
78 enval.2:
79 0000 FF .byte -1
82 endrv.3:
83 0001 FF .byte -1
84 .lcomm temp.4,4
85 .lcomm acosum.5,1
88 timeout.6:
89 0002 E0F7 0504 .long 67500000
90 .text
92 .global __vector_3
94 __vector_3:
1:main.c **** #include <avr/io.h>
2:main.c **** #include <avr/interrupt.h>
3:main.c **** #include <avr/sleep.h>
4:main.c ****
5:main.c **** ISR(TIM0_OVF_vect)
6:main.c **** {
96 .LM1:
97 /* prologue: frame size=0 */
98 0000 1F92 push __zero_reg__
99 0002 0F92 push __tmp_reg__
100 0004 0FB6 in __tmp_reg__,__SREG__
101 0006 0F92 push __tmp_reg__
102 0008 1124 clr __zero_reg__
103 000a 2F93 push r18
104 000c 3F93 push r19
105 000e 4F93 push r20
106 0010 5F93 push r21
107 0012 8F93 push r24
108 0014 9F93 push r25
109 0016 AF93 push r26
110 0018 BF93 push r27
111 /* prologue end (size=13) */
7:main.c **** static unsigned char pulse = 0;
8:main.c **** static unsigned int envelope = 0;
9:main.c **** static unsigned char enval = 255;
10:main.c **** static unsigned char endrv = 255;
11:main.c **** static long temp;
12:main.c **** static unsigned char acosum = 0;
13:main.c **** static unsigned long timeout = 67500000L;
14:main.c ****
15:main.c **** if(timeout > 0) --timeout;
113 .LM2:
114 001a 8091 0000 lds r24,timeout.6
115 001e 9091 0000 lds r25,(timeout.6)+1
116 0022 A091 0000 lds r26,(timeout.6)+2
117 0026 B091 0000 lds r27,(timeout.6)+3
118 002a 0097 sbiw r24,0
119 002c A105 cpc r26,__zero_reg__
120 002e B105 cpc r27,__zero_reg__
121 0030 59F0 breq .L2
123 .LM3:
124 0032 0197 sbiw r24,1
125 0034 A109 sbc r26,__zero_reg__
126 0036 B109 sbc r27,__zero_reg__
127 0038 8093 0000 sts timeout.6,r24
128 003c 9093 0000 sts (timeout.6)+1,r25
129 0040 A093 0000 sts (timeout.6)+2,r26
130 0044 B093 0000 sts (timeout.6)+3,r27
131 .L2:
16:main.c ****
17:main.c **** if((pulse < 102) || (timeout == 0)) PORTB &= ~(1 << PB2);
133 .LM4:
134 0048 3091 0000 lds r19,pulse.0
135 004c 3636 cpi r19,lo8(102)
136 004e 60F0 brlo .L4
137 0050 8091 0000 lds r24,timeout.6
138 0054 9091 0000 lds r25,(timeout.6)+1
139 0058 A091 0000 lds r26,(timeout.6)+2
140 005c B091 0000 lds r27,(timeout.6)+3
141 0060 0097 sbiw r24,0
142 0062 A105 cpc r26,__zero_reg__
143 0064 B105 cpc r27,__zero_reg__
144 0066 11F4 brne .L3
145 .L4:
146 0068 C298 cbi 56-0x20,2
147 006a 01C0 rjmp .L5
148 .L3:
18:main.c **** else PORTB |= (1 << PB2);
150 .LM5:
151 006c C29A sbi 56-0x20,2
152 .L5:
19:main.c ****
20:main.c **** acosum += (ACSR & (1 << ACO)) >> ACO;
154 .LM6:
155 006e 88B1 in r24,40-0x20
156 0070 9927 clr r25
157 0072 8072 andi r24,lo8(32)
158 0074 9070 andi r25,hi8(32)
159 0076 45E0 ldi r20,5
160 0078 9595 1: asr r25
161 007a 8795 ror r24
162 007c 4A95 dec r20
163 007e E1F7 brne 1b
164 0080 2091 0000 lds r18,acosum.5
165 0084 280F add r18,r24
166 0086 2093 0000 sts acosum.5,r18
21:main.c ****
22:main.c **** if(++pulse == 106)
168 .LM7:
169 008a 832F mov r24,r19
170 008c 8F5F subi r24,lo8(-(1))
171 008e 8093 0000 sts pulse.0,r24
172 0092 8A36 cpi r24,lo8(106)
173 0094 09F0 breq .+2
174 0096 BEC0 rjmp .L1
23:main.c **** {
24:main.c **** pulse = 0;
176 .LM8:
177 0098 1092 0000 sts pulse.0,__zero_reg__
25:main.c **** if(envelope < 45) endrv = 255;
179 .LM9:
180 009c 8091 0000 lds r24,envelope.1
181 00a0 9091 0000 lds r25,(envelope.1)+1
182 00a4 8D32 cpi r24,45
183 00a6 9105 cpc r25,__zero_reg__
184 00a8 D8F1 brlo .L29
26:main.c **** else if(envelope < 65) endrv = 0;
186 .LM10:
187 00aa 8134 cpi r24,65
188 00ac 9105 cpc r25,__zero_reg__
189 00ae 60F0 brlo .L42
27:main.c **** else if(envelope < 95) endrv = 60;
191 .LM11:
192 00b0 8F35 cpi r24,95
193 00b2 9105 cpc r25,__zero_reg__
194 00b4 10F4 brsh .L11
195 00b6 8CE3 ldi r24,lo8(60)
196 00b8 34C0 rjmp .L41
197 .L11:
28:main.c **** else if(envelope < 140) endrv = 40;
199 .LM12:
200 00ba 8C38 cpi r24,140
201 00bc 9105 cpc r25,__zero_reg__
202 00be 58F0 brlo .L43
29:main.c **** else if(envelope < 335) endrv = 0;
204 .LM13:
205 00c0 21E0 ldi r18,hi8(335)
206 00c2 8F34 cpi r24,lo8(335)
207 00c4 9207 cpc r25,r18
208 00c6 18F4 brsh .L15
209 .L42:
210 00c8 1092 0000 sts endrv.3,__zero_reg__
211 00cc 2CC0 rjmp .L8
212 .L15:
30:main.c **** else if(envelope < 340) endrv = 40;
214 .LM14:
215 00ce 21E0 ldi r18,hi8(340)
216 00d0 8435 cpi r24,lo8(340)
217 00d2 9207 cpc r25,r18
218 00d4 10F4 brsh .L17
219 .L43:
220 00d6 88E2 ldi r24,lo8(40)
221 00d8 24C0 rjmp .L41
222 .L17:
31:main.c **** else if(envelope < 400) endrv = 75;
224 .LM15:
225 00da 21E0 ldi r18,hi8(400)
226 00dc 8039 cpi r24,lo8(400)
227 00de 9207 cpc r25,r18
228 00e0 10F4 brsh .L19
229 00e2 8BE4 ldi r24,lo8(75)
230 00e4 1EC0 rjmp .L41
231 .L19:
32:main.c **** else if(envelope < 440) endrv = 90;
233 .LM16:
234 00e6 21E0 ldi r18,hi8(440)
235 00e8 883B cpi r24,lo8(440)
236 00ea 9207 cpc r25,r18
237 00ec 10F4 brsh .L21
238 00ee 8AE5 ldi r24,lo8(90)
239 00f0 18C0 rjmp .L41
240 .L21:
33:main.c **** else if(envelope < 480) endrv = 110;
242 .LM17:
243 00f2 21E0 ldi r18,hi8(480)
244 00f4 803E cpi r24,lo8(480)
245 00f6 9207 cpc r25,r18
246 00f8 10F4 brsh .L23
247 00fa 8EE6 ldi r24,lo8(110)
248 00fc 12C0 rjmp .L41
249 .L23:
34:main.c **** else if(envelope < 490) endrv = 180;
251 .LM18:
252 00fe 21E0 ldi r18,hi8(490)
253 0100 8A3E cpi r24,lo8(490)
254 0102 9207 cpc r25,r18
255 0104 10F4 brsh .L25
256 0106 84EB ldi r24,lo8(-76)
257 0108 0CC0 rjmp .L41
258 .L25:
35:main.c **** else if(envelope < 510) endrv = 190;
260 .LM19:
261 010a 21E0 ldi r18,hi8(510)
262 010c 8E3F cpi r24,lo8(510)
263 010e 9207 cpc r25,r18
264 0110 10F4 brsh .L27
265 0112 8EEB ldi r24,lo8(-66)
266 0114 06C0 rjmp .L41
267 .L27:
36:main.c **** else if(envelope < 530) endrv = 200;
269 .LM20:
270 0116 8251 subi r24,lo8(530)
271 0118 9240 sbci r25,hi8(530)
272 011a 10F4 brsh .L29
273 011c 88EC ldi r24,lo8(-56)
274 011e 01C0 rjmp .L41
275 .L29:
37:main.c **** else endrv = 255;
277 .LM21:
278 0120 8FEF ldi r24,lo8(-1)
279 .L41:
280 0122 8093 0000 sts endrv.3,r24
281 .L8:
38:main.c ****
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -