📄 usb.lst
字号:
1 .file "USB.c"
2 .arch atmega128
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 Remain_Descriptor_Flag
20 Remain_Descriptor_Flag:
21 .LFB7:
22 .LM1:
23 /* prologue: frame size=0 */
24 /* prologue end (size=0) */
25 0000 8091 0000 lds r24,USB_Send_Descriptor_Flag
26 .LM2:
27 0004 9927 clr r25
28 /* epilogue: frame size=0 */
29 0006 0895 ret
30 /* epilogue end (size=1) */
31 /* function Remain_Descriptor_Flag size 4 (3) */
32 .LFE7:
34 .global Clear_Remain_Descriptor_Flag
36 Clear_Remain_Descriptor_Flag:
37 .LFB8:
38 .LM3:
39 /* prologue: frame size=0 */
40 /* prologue end (size=0) */
41 .LM4:
42 0008 1092 0000 sts USB_Send_Descriptor_Flag,__zero_reg__
43 /* epilogue: frame size=0 */
44 000c 0895 ret
45 /* epilogue end (size=1) */
46 /* function Clear_Remain_Descriptor_Flag size 3 (2) */
47 .LFE8:
49 .global Set_Interface
51 Set_Interface:
52 .LFB13:
53 .LM5:
54 /* prologue: frame size=0 */
55 /* prologue end (size=0) */
56 .LVL0:
57 .LM6:
58 000e 80E0 ldi r24,lo8(0)
59 0010 90E0 ldi r25,hi8(0)
60 .LVL1:
61 /* epilogue: frame size=0 */
62 0012 0895 ret
63 /* epilogue end (size=1) */
64 /* function Set_Interface size 3 (2) */
65 .LFE13:
67 .global Reserved
69 Reserved:
70 .LFB14:
71 .LM7:
72 /* prologue: frame size=0 */
73 /* prologue end (size=0) */
74 .LVL2:
75 .LM8:
76 0014 80E0 ldi r24,lo8(0)
77 0016 90E0 ldi r25,hi8(0)
78 .LVL3:
79 /* epilogue: frame size=0 */
80 0018 0895 ret
81 /* epilogue end (size=1) */
82 /* function Reserved size 3 (2) */
83 .LFE14:
85 .global Get_Interface
87 Get_Interface:
88 .LFB12:
89 .LM9:
90 /* prologue: frame size=0 */
91 /* prologue end (size=0) */
92 .LVL4:
93 001a FC01 movw r30,r24
94 .LM10:
95 001c 8081 ld r24,Z
96 .LVL5:
97 001e 8138 cpi r24,lo8(-127)
98 0020 01F4 brne .L10
99 .LM11:
100 0022 2581 ldd r18,Z+5
101 0024 8481 ldd r24,Z+4
102 0026 282B or r18,r24
103 0028 8281 ldd r24,Z+2
104 002a 9381 ldd r25,Z+3
105 002c 892B or r24,r25
106 002e 9781 ldd r25,Z+7
107 0030 892B or r24,r25
108 0032 282B or r18,r24
109 0034 01F4 brne .L10
110 .LM12:
111 0036 8681 ldd r24,Z+6
112 0038 8130 cpi r24,lo8(1)
113 003a 01F4 brne .L10
114 .LM13:
115 003c 1082 st Z,__zero_reg__
116 .LM14:
117 003e 41E0 ldi r20,lo8(1)
118 0040 BF01 movw r22,r30
119 0042 0E94 0000 call D12_Write_Endpoint
120 .LVL6:
121 0046 81E0 ldi r24,lo8(1)
122 0048 90E0 ldi r25,hi8(1)
123 004a 0895 ret
124 .LVL7:
125 .L10:
126 .LM15:
127 004c 80E0 ldi r24,lo8(0)
128 004e 90E0 ldi r25,hi8(0)
129 .LM16:
130 0050 0895 ret
131 /* epilogue: frame size=0 */
132 /* epilogue: noreturn */
133 /* epilogue end (size=0) */
134 /* function Get_Interface size 29 (29) */
135 .LFE12:
137 .global Get_Configuration
139 Get_Configuration:
140 .LFB10:
141 .LM17:
142 /* prologue: frame size=0 */
143 /* prologue end (size=0) */
144 .LVL8:
145 0052 FC01 movw r30,r24
146 .LM18:
147 0054 8081 ld r24,Z
148 .LVL9:
149 0056 8038 cpi r24,lo8(-128)
150 0058 01F4 brne .L17
151 .LM19:
152 005a 2581 ldd r18,Z+5
153 005c 8481 ldd r24,Z+4
154 005e 282B or r18,r24
155 0060 8281 ldd r24,Z+2
156 0062 9381 ldd r25,Z+3
157 0064 892B or r24,r25
158 0066 9781 ldd r25,Z+7
159 0068 892B or r24,r25
160 006a 282B or r18,r24
161 006c 01F4 brne .L17
162 .LM20:
163 006e 9681 ldd r25,Z+6
164 0070 9130 cpi r25,lo8(1)
165 0072 01F4 brne .L17
166 .LM21:
167 0074 1082 st Z,__zero_reg__
168 0076 8091 0000 lds r24,USB_Config
169 007a 8111 cpse r24,__zero_reg__
170 007c 9083 st Z,r25
171 .L21:
172 .LM22:
173 007e 41E0 ldi r20,lo8(1)
174 0080 BF01 movw r22,r30
175 0082 81E0 ldi r24,lo8(1)
176 0084 0E94 0000 call D12_Write_Endpoint
177 .LVL10:
178 0088 81E0 ldi r24,lo8(1)
179 008a 90E0 ldi r25,hi8(1)
180 008c 0895 ret
181 .LVL11:
182 .L17:
183 .LM23:
184 008e 80E0 ldi r24,lo8(0)
185 0090 90E0 ldi r25,hi8(0)
186 .LM24:
187 0092 0895 ret
188 /* epilogue: frame size=0 */
189 /* epilogue: noreturn */
190 /* epilogue end (size=0) */
191 /* function Get_Configuration size 35 (35) */
192 .LFE10:
194 .global Send_Descriptor
196 Send_Descriptor:
197 .LFB6:
198 .LM25:
199 /* prologue: frame size=0 */
200 /* prologue end (size=0) */
201 .LM26:
202 0094 4091 0000 lds r20,send_remain
203 0098 5091 0000 lds r21,(send_remain)+1
204 009c 1092 0000 sts USB_Send_Descriptor_Flag,__zero_reg__
205 00a0 4031 cpi r20,16
206 00a2 5105 cpc r21,__zero_reg__
207 00a4 04F0 brlt .L25
208 .LM27:
209 00a6 81E0 ldi r24,lo8(1)
210 00a8 8093 0000 sts USB_Send_Descriptor_Flag,r24
211 .L25:
212 .LM28:
213 00ac 4131 cpi r20,17
214 00ae 5105 cpc r21,__zero_reg__
215 00b0 04F0 brlt .L26
216 00b2 40E1 ldi r20,lo8(16)
217 00b4 50E0 ldi r21,hi8(16)
218 .L26:
219 00b6 6091 0000 lds r22,send_ptr
220 00ba 7091 0000 lds r23,(send_ptr)+1
221 00be 81E0 ldi r24,lo8(1)
222 00c0 0E94 0000 call D12_Write_Endpoint
223 .LM29:
224 00c4 8091 0000 lds r24,send_remain
225 00c8 9091 0000 lds r25,(send_remain)+1
226 00cc 4097 sbiw r24,16
227 00ce 9093 0000 sts (send_remain)+1,r25
228 00d2 8093 0000 sts send_remain,r24
229 .LM30:
230 00d6 8091 0000 lds r24,send_ptr
231 00da 9091 0000 lds r25,(send_ptr)+1
232 00de 4096 adiw r24,16
233 00e0 9093 0000 sts (send_ptr)+1,r25
234 00e4 8093 0000 sts send_ptr,r24
235 /* epilogue: frame size=0 */
236 00e8 0895 ret
237 /* epilogue end (size=1) */
238 /* function Send_Descriptor size 43 (42) */
239 .LFE6:
241 .global Get_Descriptor
243 Get_Descriptor:
244 .LFB9:
245 .LM31:
246 /* prologue: frame size=0 */
247 /* prologue end (size=0) */
248 .LVL12:
249 00ea FC01 movw r30,r24
250 .LM32:
251 00ec 8081 ld r24,Z
252 .LVL13:
253 00ee 8038 cpi r24,lo8(-128)
254 00f0 01F0 breq .+2
255 00f2 00C0 rjmp .L29
256 .LM33:
257 00f4 8381 ldd r24,Z+3
258 00f6 8230 cpi r24,lo8(2)
259 00f8 01F0 breq .L32
260 00fa 8330 cpi r24,lo8(3)
261 00fc 01F0 breq .L33
262 00fe 8130 cpi r24,lo8(1)
263 0100 01F0 breq .+2
264 0102 00C0 rjmp .L29
265 .LM34:
266 0104 80E0 ldi r24,lo8(ThisDevDesc)
267 0106 90E0 ldi r25,hi8(ThisDevDesc)
268 0108 9093 0000 sts (send_ptr)+1,r25
269 010c 8093 0000 sts send_ptr,r24
270 .LM35:
271 0110 82E1 ldi r24,lo8(18)
272 0112 90E0 ldi r25,hi8(18)
273 0114 00C0 rjmp .L43
274 .L32:
275 .LM36:
276 0116 80E0 ldi r24,lo8(ThisDevDesc+18)
277 0118 90E0 ldi r25,hi8(ThisDevDesc+18)
278 011a 9093 0000 sts (send_ptr)+1,r25
279 011e 8093 0000 sts send_ptr,r24
280 .LM37:
281 0122 80E2 ldi r24,lo8(32)
282 0124 90E0 ldi r25,hi8(32)
283 0126 00C0 rjmp .L43
284 .L33:
285 .LM38:
286 0128 8281 ldd r24,Z+2
287 012a 8823 tst r24
288 012c 01F4 brne .L35
289 .LM39:
290 012e 80E0 ldi r24,lo8(LANGUAGE_ID)
291 0130 90E0 ldi r25,hi8(LANGUAGE_ID)
292 0132 9093 0000 sts (send_ptr)+1,r25
293 0136 8093 0000 sts send_ptr,r24
294 .LM40:
295 013a 8091 0000 lds r24,LANGUAGE_ID
296 013e 00C0 rjmp .L44
297 .L35:
298 .LM41:
299 0140 8230 cpi r24,lo8(2)
300 0142 01F4 brne .L34
301 .LM42:
302 0144 80E0 ldi r24,lo8(sign_name)
303 0146 90E0 ldi r25,hi8(sign_name)
304 0148 9093 0000 sts (send_ptr)+1,r25
305 014c 8093 0000 sts send_ptr,r24
306 .LM43:
307 0150 8091 0000 lds r24,sign_name
308 .L44:
309 0154 9927 clr r25
310 .L43:
311 0156 9093 0000 sts (send_remain)+1,r25
312 015a 8093 0000 sts send_remain,r24
313 .L34:
314 .LM44:
315 015e 8781 ldd r24,Z+7
316 0160 8823 tst r24
317 0162 01F4 brne .L38
318 0164 8681 ldd r24,Z+6
319 0166 282F mov r18,r24
320 0168 3327 clr r19
321 016a 8091 0000 lds r24,send_remain
322 016e 9091 0000 lds r25,(send_remain)+1
323 0172 2817 cp r18,r24
324 0174 3907 cpc r19,r25
325 0176 04F4 brge .L38
326 .LM45:
327 0178 3093 0000 sts (send_remain)+1,r19
328 017c 2093 0000 sts send_remain,r18
329 .L38:
330 .LM46:
331 0180 0E94 0000 call Send_Descriptor
332 .LVL14:
333 0184 81E0 ldi r24,lo8(1)
334 0186 90E0 ldi r25,hi8(1)
335 0188 0895 ret
336 .LVL15:
337 .L29:
338 .LM47:
339 018a 80E0 ldi r24,lo8(0)
340 018c 90E0 ldi r25,hi8(0)
341 .LM48:
342 018e 0895 ret
343 /* epilogue: frame size=0 */
344 /* epilogue: noreturn */
345 /* epilogue end (size=0) */
346 /* function Get_Descriptor size 83 (83) */
347 .LFE9:
349 .global Set_Configuration
351 Set_Configuration:
352 .LFB11:
353 .LM49:
354 /* prologue: frame size=0 */
355 0190 1F93 push r17
356 0192 CF93 push r28
357 0194 DF93 push r29
358 /* prologue end (size=3) */
359 .LVL16:
360 0196 EC01 movw r28,r24
361 .LM50:
362 0198 9881 ld r25,Y
363 019a 8B81 ldd r24,Y+3
364 .LVL17:
365 019c 982B or r25,r24
366 019e 8E81 ldd r24,Y+6
367 01a0 982B or r25,r24
368 01a2 8D81 ldd r24,Y+5
369 01a4 2C81 ldd r18,Y+4
370 01a6 822B or r24,r18
371 01a8 2F81 ldd r18,Y+7
372 01aa 822B or r24,r18
373 01ac 982B or r25,r24
374 01ae 01F4 brne .L46
375 .LM51:
376 01b0 9A81 ldd r25,Y+2
377 01b2 892F mov r24,r25
378 01b4 8E7F andi r24,lo8(-2)
379 01b6 01F4 brne .L46
380 .LM52:
381 01b8 892F mov r24,r25
382 01ba 8170 andi r24,lo8(1)
383 01bc 8093 0000 sts USB_Config,r24
384 .LM53:
385 01c0 0E94 0000 call D12_Set_Endpoint_Enable
386 .LM54:
387 01c4 6091 0000 lds r22,USB_Config
388 01c8 11E0 ldi r17,lo8(1)
389 01ca 6127 eor r22,r17
390 01cc 84E0 ldi r24,lo8(4)
391 01ce 0E94 0000 call D12_Set_Endpoint_Status
392 .LM55:
393 01d2 6091 0000 lds r22,USB_Config
394 01d6 6127 eor r22,r17
395 01d8 85E0 ldi r24,lo8(5)
396 01da 0E94 0000 call D12_Set_Endpoint_Status
397 .LM56:
398 01de 40E0 ldi r20,lo8(0)
399 01e0 BE01 movw r22,r28
400 01e2 81E0 ldi r24,lo8(1)
401 01e4 0E94 0000 call D12_Write_Endpoint
402 01e8 81E0 ldi r24,lo8(1)
403 01ea 90E0 ldi r25,hi8(1)
404 01ec 00C0 rjmp .L49
405 .L46:
406 .LM57:
407 01ee 80E0 ldi r24,lo8(0)
408 01f0 90E0 ldi r25,hi8(0)
409 .L49:
410 /* epilogue: frame size=0 */
411 01f2 DF91 pop r29
412 01f4 CF91 pop r28
413 01f6 1F91 pop r17
414 01f8 0895 ret
415 /* epilogue end (size=4) */
416 /* function Set_Configuration size 55 (48) */
417 .LFE11:
419 .global Set_Feature
421 Set_Feature:
422 .LFB4:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -