📄 main.lst
字号:
1 .file "main.c"
2 .arch atmega64
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
17 .Ltext0:
18 .global scl_delay
20 scl_delay:
21 .LFB12:
22 .LM1:
23 /* prologue: frame size=0 */
24 /* prologue end (size=0) */
25 .LM2:
26 /* #APP */
27 0000 0000 nop
28 0002 0000 nop
29 /* #NOAPP */
30 /* epilogue: frame size=0 */
31 0004 0895 ret
32 /* epilogue end (size=1) */
33 /* function scl_delay size 5 (4) */
34 .LFE12:
36 .global delay_ms
38 delay_ms:
39 .LFB13:
40 .LM3:
41 /* prologue: frame size=4 */
42 0006 CF93 push r28
43 0008 DF93 push r29
44 000a CDB7 in r28,__SP_L__
45 000c DEB7 in r29,__SP_H__
46 000e 2497 sbiw r28,4
47 0010 0FB6 in __tmp_reg__,__SREG__
48 0012 F894 cli
49 0014 DEBF out __SP_H__,r29
50 0016 0FBE out __SREG__,__tmp_reg__
51 0018 CDBF out __SP_L__,r28
52 /* prologue end (size=10) */
53 .LVL0:
54 001a 9C01 movw r18,r24
55 .LM4:
56 001c 1C82 std Y+4,__zero_reg__
57 001e 1B82 std Y+3,__zero_reg__
58 .LVL1:
59 0020 8B81 ldd r24,Y+3
60 0022 9C81 ldd r25,Y+4
61 .LVL2:
62 0024 8217 cp r24,r18
63 0026 9307 cpc r25,r19
64 0028 00F4 brsh .L6
65 .L7:
66 .LM5:
67 002a 8B81 ldd r24,Y+3
68 002c 9C81 ldd r25,Y+4
69 002e 9A83 std Y+2,r25
70 0030 8983 std Y+1,r24
71 .LVL3:
72 .LM6:
73 0032 8B81 ldd r24,Y+3
74 0034 9C81 ldd r25,Y+4
75 0036 0196 adiw r24,1
76 0038 9C83 std Y+4,r25
77 003a 8B83 std Y+3,r24
78 003c 8B81 ldd r24,Y+3
79 003e 9C81 ldd r25,Y+4
80 0040 8217 cp r24,r18
81 0042 9307 cpc r25,r19
82 0044 00F0 brlo .L7
83 .L6:
84 /* epilogue: frame size=4 */
85 0046 2496 adiw r28,4
86 0048 0FB6 in __tmp_reg__,__SREG__
87 004a F894 cli
88 004c DEBF out __SP_H__,r29
89 004e 0FBE out __SREG__,__tmp_reg__
90 0050 CDBF out __SP_L__,r28
91 0052 DF91 pop r29
92 0054 CF91 pop r28
93 0056 0895 ret
94 /* epilogue end (size=9) */
95 /* function delay_ms size 41 (22) */
96 .LFE13:
98 .global calc_divider
100 calc_divider:
101 .LFB14:
102 .LM7:
103 /* prologue: frame size=0 */
104 0058 EF92 push r14
105 005a FF92 push r15
106 005c 0F93 push r16
107 005e 1F93 push r17
108 /* prologue end (size=4) */
109 .LVL4:
110 .LM8:
111 0060 E82F mov r30,r24
112 0062 FF27 clr r31
113 0064 EE0F lsl r30
114 0066 FF1F rol r31
115 0068 EE0F lsl r30
116 006a FF1F rol r31
117 006c E050 subi r30,lo8(-(freq))
118 006e F040 sbci r31,hi8(-(freq))
119 0070 E080 ld r14,Z
120 0072 F180 ldd r15,Z+1
121 0074 0281 ldd r16,Z+2
122 0076 1381 ldd r17,Z+3
123 0078 EE0C lsl r14
124 007a FF1C rol r15
125 007c 001F rol r16
126 007e 111F rol r17
127 0080 EE0C lsl r14
128 0082 FF1C rol r15
129 0084 001F rol r16
130 0086 111F rol r17
131 0088 EE0C lsl r14
132 008a FF1C rol r15
133 008c 001F rol r16
134 008e 111F rol r17
135 0090 EE0C lsl r14
136 0092 FF1C rol r15
137 0094 001F rol r16
138 0096 111F rol r17
139 .LVL5:
140 0098 80E4 ldi r24,lo8(622400)
141 009a 9FE7 ldi r25,hi8(622400)
142 009c A9E0 ldi r26,hlo8(622400)
143 009e B0E0 ldi r27,hhi8(622400)
144 00a0 E80E add r14,r24
145 00a2 F91E adc r15,r25
146 00a4 0A1F adc r16,r26
147 00a6 1B1F adc r17,r27
148 00a8 C801 movw r24,r16
149 00aa B701 movw r22,r14
150 00ac 20E0 ldi r18,lo8(256000)
151 00ae 38EE ldi r19,hi8(256000)
152 00b0 43E0 ldi r20,hlo8(256000)
153 00b2 50E0 ldi r21,hhi8(256000)
154 00b4 0E94 0000 call __udivmodsi4
155 .LVL6:
156 00b8 2F77 andi r18,lo8(127)
157 00ba 2093 0000 sts Div1,r18
158 .LM9:
159 00be C801 movw r24,r16
160 00c0 B701 movw r22,r14
161 00c2 28EE ldi r18,lo8(1000)
162 00c4 33E0 ldi r19,hi8(1000)
163 00c6 40E0 ldi r20,hlo8(1000)
164 00c8 50E0 ldi r21,hhi8(1000)
165 00ca 0E94 0000 call __udivmodsi4
166 00ce 2093 0000 sts Div2,r18
167 /* epilogue: frame size=0 */
168 00d2 1F91 pop r17
169 00d4 0F91 pop r16
170 00d6 FF90 pop r15
171 00d8 EF90 pop r14
172 00da 0895 ret
173 /* epilogue end (size=5) */
174 /* function calc_divider size 66 (57) */
175 .LFE14:
177 .global SendByte
179 SendByte:
180 .LFB17:
181 .LM10:
182 /* prologue: frame size=0 */
183 00dc 0F93 push r16
184 00de 1F93 push r17
185 /* prologue end (size=2) */
186 .LVL7:
187 00e0 182F mov r17,r24
188 00e2 00E0 ldi r16,lo8(0)
189 .LVL8:
190 00e4 00C0 rjmp .L13
191 .LVL9:
192 .L20:
193 .LM11:
194 00e6 9198 cbi 50-0x20,1
195 .L16:
196 .LM12:
197 00e8 0E94 0000 call scl_delay
198 .LM13:
199 00ec 909A sbi 50-0x20,0
200 .LM14:
201 00ee 0E94 0000 call scl_delay
202 .LM15:
203 00f2 9098 cbi 50-0x20,0
204 .LM16:
205 00f4 0E94 0000 call scl_delay
206 .LM17:
207 00f8 0F5F subi r16,lo8(-(1))
208 00fa 0830 cpi r16,lo8(8)
209 00fc 01F0 breq .L17
210 .LM18:
211 00fe 110F lsl r17
212 .LVL10:
213 .L13:
214 .LM19:
215 0100 17FF sbrs r17,7
216 0102 00C0 rjmp .L20
217 .LM20:
218 0104 919A sbi 50-0x20,1
219 0106 00C0 rjmp .L16
220 .LVL11:
221 .L17:
222 .LM21:
223 0108 919A sbi 50-0x20,1
224 .LM22:
225 010a 0E94 0000 call scl_delay
226 .LM23:
227 010e 909A sbi 50-0x20,0
228 .LM24:
229 0110 0E94 0000 call scl_delay
230 .LM25:
231 0114 9098 cbi 50-0x20,0
232 .LM26:
233 0116 0E94 0000 call scl_delay
234 .LM27:
235 011a 80E0 ldi r24,lo8(0)
236 011c 90E0 ldi r25,hi8(0)
237 /* epilogue: frame size=0 */
238 011e 1F91 pop r17
239 0120 0F91 pop r16
240 0122 0895 ret
241 /* epilogue end (size=3) */
242 /* function SendByte size 36 (31) */
243 .LFE17:
245 .global ReadByte
247 ReadByte:
248 .LFB18:
249 .LM28:
250 /* prologue: frame size=0 */
251 0124 0F93 push r16
252 0126 1F93 push r17
253 /* prologue end (size=2) */
254 .LM29:
255 0128 8DEF ldi r24,lo8(-3)
256 012a 81BB out 49-0x20,r24
257 .LM30:
258 012c 8FEF ldi r24,lo8(-1)
259 012e 82BB out 50-0x20,r24
260 0130 00E0 ldi r16,lo8(0)
261 .LVL12:
262 0132 10E0 ldi r17,lo8(0)
263 .LVL13:
264 0134 00C0 rjmp .L22
265 .LVL14:
266 .L31:
267 .LM31:
268 0136 1160 ori r17,lo8(1)
269 .LVL15:
270 .LM32:
271 0138 0E94 0000 call scl_delay
272 .LM33:
273 013c 9098 cbi 50-0x20,0
274 .LM34:
275 013e 0E94 0000 call scl_delay
276 .LM35:
277 0142 0F5F subi r16,lo8(-(1))
278 0144 0830 cpi r16,lo8(8)
279 0146 01F0 breq .L30
280 .L22:
281 .LM36:
282 0148 110F lsl r17
283 .LVL16:
284 .LM37:
285 014a 909A sbi 50-0x20,0
286 .LM38:
287 014c 0E94 0000 call scl_delay
288 .LM39:
289 0150 8199 sbic 48-0x20,1
290 0152 00C0 rjmp .L31
291 .LM40:
292 0154 1E7F andi r17,lo8(-2)
293 .LVL17:
294 .LM41:
295 0156 0E94 0000 call scl_delay
296 .LM42:
297 015a 9098 cbi 50-0x20,0
298 .LM43:
299 015c 0E94 0000 call scl_delay
300 .LM44:
301 0160 0F5F subi r16,lo8(-(1))
302 0162 0830 cpi r16,lo8(8)
303 0164 01F4 brne .L22
304 .L30:
305 .LM45:
306 0166 8FEF ldi r24,lo8(-1)
307 0168 81BB out 49-0x20,r24
308 .LM46:
309 016a 82BB out 50-0x20,r24
310 .LM47:
311 016c 812F mov r24,r17
312 016e 9927 clr r25
313 /* epilogue: frame size=0 */
314 0170 1F91 pop r17
315 0172 0F91 pop r16
316 0174 0895 ret
317 /* epilogue end (size=3) */
318 /* function ReadByte size 41 (36) */
319 .LFE18:
321 .global SendACK
323 SendACK:
324 .LFB19:
325 .LM48:
326 /* prologue: frame size=0 */
327 /* prologue end (size=0) */
328 .LM49:
329 0176 9098 cbi 50-0x20,0
330 .LM50:
331 0178 0E94 0000 call scl_delay
332 .LM51:
333 017c 9198 cbi 50-0x20,1
334 .LM52:
335 017e 0E94 0000 call scl_delay
336 .LM53:
337 0182 909A sbi 50-0x20,0
338 .LM54:
339 0184 0E94 0000 call scl_delay
340 .LM55:
341 0188 9098 cbi 50-0x20,0
342 /* epilogue: frame size=0 */
343 018a 0895 ret
344 /* epilogue end (size=1) */
345 /* function SendACK size 11 (10) */
346 .LFE19:
348 .global SendNoACK
350 SendNoACK:
351 .LFB20:
352 .LM56:
353 /* prologue: frame size=0 */
354 /* prologue end (size=0) */
355 .LM57:
356 018c 9098 cbi 50-0x20,0
357 .LM58:
358 018e 0E94 0000 call scl_delay
359 .LM59:
360 0192 919A sbi 50-0x20,1
361 .LM60:
362 0194 0E94 0000 call scl_delay
363 .LM61:
364 0198 909A sbi 50-0x20,0
365 .LM62:
366 019a 0E94 0000 call scl_delay
367 .LM63:
368 019e 9098 cbi 50-0x20,0
369 /* epilogue: frame size=0 */
370 01a0 0895 ret
371 /* epilogue end (size=1) */
372 /* function SendNoACK size 11 (10) */
373 .LFE20:
375 .global Start
377 Start:
378 .LFB21:
379 .LM64:
380 /* prologue: frame size=0 */
381 /* prologue end (size=0) */
382 .LM65:
383 01a2 919A sbi 50-0x20,1
384 .LM66:
385 01a4 0E94 0000 call scl_delay
386 .LM67:
387 01a8 909A sbi 50-0x20,0
388 .LM68:
389 01aa 0E94 0000 call scl_delay
390 .LM69:
391 01ae 9198 cbi 50-0x20,1
392 .LM70:
393 01b0 0E94 0000 call scl_delay
394 .LM71:
395 01b4 9098 cbi 50-0x20,0
396 /* epilogue: frame size=0 */
397 01b6 0895 ret
398 /* epilogue end (size=1) */
399 /* function Start size 11 (10) */
400 .LFE21:
402 .global Stop
404 Stop:
405 .LFB22:
406 .LM72:
407 /* prologue: frame size=0 */
408 /* prologue end (size=0) */
409 .LM73:
410 01b8 9198 cbi 50-0x20,1
411 .LM74:
412 01ba 0E94 0000 call scl_delay
413 .LM75:
414 01be 909A sbi 50-0x20,0
415 .LM76:
416 01c0 0E94 0000 call scl_delay
417 .LM77:
418 01c4 919A sbi 50-0x20,1
419 .LM78:
420 01c6 0E94 0000 call scl_delay
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -