📄 rprintf.lst
字号:
1 .file "rprintf.c"
2 .arch atmega32
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 .section .progmem.data,"a",@progbits
21 HexChars:
22 0000 3031 3233 .string "0123456789ABCDEF"
22 3435 3637
22 3839 4142
22 4344 4546
22 00
23 .text
24 .global rprintfInit
26 rprintfInit:
27 .LFB2:
28 .LM1:
29 /* prologue: frame size=0 */
30 /* prologue end (size=0) */
31 .LM2:
32 0000 9093 0000 sts (rputchar)+1,r25
33 0004 8093 0000 sts rputchar,r24
34 /* epilogue: frame size=0 */
35 0008 0895 ret
36 /* epilogue end (size=1) */
37 /* function rprintfInit size 5 (4) */
38 .LFE2:
40 .global rprintfChar
42 rprintfChar:
43 .LFB3:
44 .LM3:
45 /* prologue: frame size=0 */
46 /* prologue end (size=0) */
47 .LM4:
48 000a E091 0000 lds r30,rputchar
49 000e F091 0000 lds r31,(rputchar)+1
50 0012 0995 icall
51 /* epilogue: frame size=0 */
52 0014 0895 ret
53 /* epilogue end (size=1) */
54 /* function rprintfChar size 6 (5) */
55 .LFE3:
57 .global rprintfStr
59 rprintfStr:
60 .LFB4:
61 .LM5:
62 /* prologue: frame size=0 */
63 0016 CF93 push r28
64 0018 DF93 push r29
65 /* prologue end (size=2) */
66 001a EC01 movw r28,r24
67 .LM6:
68 001c 892B or r24,r25
69 001e 61F0 breq .L3
70 .LM7:
71 0020 8881 ld r24,Y
72 0022 8823 tst r24
73 0024 49F0 breq .L3
74 .L8:
75 .LBB2:
76 .LBB3:
77 0026 E091 0000 lds r30,rputchar
78 002a F091 0000 lds r31,(rputchar)+1
79 002e 8991 ld r24,Y+
80 0030 0995 icall
81 .LBE3:
82 .LBE2:
83 0032 8881 ld r24,Y
84 0034 8823 tst r24
85 0036 B9F7 brne .L8
86 .L3:
87 /* epilogue: frame size=0 */
88 0038 DF91 pop r29
89 003a CF91 pop r28
90 003c 0895 ret
91 /* epilogue end (size=3) */
92 /* function rprintfStr size 20 (15) */
93 .LFE4:
95 .global rprintfStrLen
97 rprintfStrLen:
98 .LFB5:
99 .LM8:
100 /* prologue: frame size=0 */
101 003e EF92 push r14
102 0040 FF92 push r15
103 0042 0F93 push r16
104 0044 1F93 push r17
105 0046 CF93 push r28
106 0048 DF93 push r29
107 /* prologue end (size=6) */
108 004a 8C01 movw r16,r24
109 004c 7A01 movw r14,r20
110 .LM9:
111 004e C0E0 ldi r28,lo8(0)
112 0050 D0E0 ldi r29,hi8(0)
113 .LM10:
114 0052 892B or r24,r25
115 0054 01F1 breq .L10
116 .L12:
117 .LM11:
118 0056 CE01 movw r24,r28
119 0058 2196 adiw r28,1
120 005a 8617 cp r24,r22
121 005c 9707 cpc r25,r23
122 005e 28F4 brsh .L13
123 0060 F801 movw r30,r16
124 0062 8191 ld r24,Z+
125 0064 8F01 movw r16,r30
126 0066 8823 tst r24
127 0068 B1F7 brne .L12
128 .L13:
129 .LM12:
130 006a C0E0 ldi r28,lo8(0)
131 006c D0E0 ldi r29,hi8(0)
132 006e CE15 cp r28,r14
133 0070 DF05 cpc r29,r15
134 0072 88F4 brsh .L10
135 .L22:
136 .LM13:
137 0074 F801 movw r30,r16
138 0076 8081 ld r24,Z
139 0078 E091 0000 lds r30,rputchar
140 007c F091 0000 lds r31,(rputchar)+1
141 0080 8823 tst r24
142 0082 19F0 breq .L18
143 .LBB4:
144 .LM14:
145 0084 0F5F subi r16,lo8(-(1))
146 0086 1F4F sbci r17,hi8(-(1))
147 0088 01C0 rjmp .L24
148 .L18:
149 .LBE4:
150 .LBB5:
151 .LBB6:
152 .LM15:
153 008a 80E2 ldi r24,lo8(32)
154 .L24:
155 008c 0995 icall
156 .LBE6:
157 .LBE5:
158 .LM16:
159 008e 2196 adiw r28,1
160 0090 CE15 cp r28,r14
161 0092 DF05 cpc r29,r15
162 0094 78F3 brlo .L22
163 .L10:
164 /* epilogue: frame size=0 */
165 0096 DF91 pop r29
166 0098 CF91 pop r28
167 009a 1F91 pop r17
168 009c 0F91 pop r16
169 009e FF90 pop r15
170 00a0 EF90 pop r14
171 00a2 0895 ret
172 /* epilogue end (size=7) */
173 /* function rprintfStrLen size 51 (38) */
174 .LFE5:
176 .global rprintfProgStr
178 rprintfProgStr:
179 .LFB6:
180 .LM17:
181 /* prologue: frame size=0 */
182 00a4 CF93 push r28
183 00a6 DF93 push r29
184 /* prologue end (size=2) */
185 00a8 EC01 movw r28,r24
186 .LM18:
187 00aa 0097 sbiw r24,0
188 00ac 79F0 breq .L25
189 .LBB7:
190 .LM19:
191 00ae FC01 movw r30,r24
192 00b0 2196 adiw r28,1
193 /* #APP */
194 00b2 8491 lpm r24, Z
195
196 /* #NOAPP */
197 .LBE7:
198 00b4 8823 tst r24
199 00b6 51F0 breq .L25
200 .L30:
201 .LBB8:
202 .LBB9:
203 00b8 E091 0000 lds r30,rputchar
204 00bc F091 0000 lds r31,(rputchar)+1
205 00c0 0995 icall
206 .LBE9:
207 .LBE8:
208 .LBB10:
209 00c2 FE01 movw r30,r28
210 00c4 2196 adiw r28,1
211 /* #APP */
212 00c6 8491 lpm r24, Z
213
214 /* #NOAPP */
215 .LBE10:
216 00c8 8823 tst r24
217 00ca B1F7 brne .L30
218 .L25:
219 /* epilogue: frame size=0 */
220 00cc DF91 pop r29
221 00ce CF91 pop r28
222 00d0 0895 ret
223 /* epilogue end (size=3) */
224 /* function rprintfProgStr size 29 (24) */
225 .LFE6:
227 .global rprintfCRLF
229 rprintfCRLF:
230 .LFB7:
231 .LM20:
232 /* prologue: frame size=0 */
233 /* prologue end (size=0) */
234 .LBB11:
235 .LBB12:
236 .LM21:
237 00d2 E091 0000 lds r30,rputchar
238 00d6 F091 0000 lds r31,(rputchar)+1
239 00da 8DE0 ldi r24,lo8(13)
240 00dc 0995 icall
241 .LBE12:
242 .LBE11:
243 .LBB13:
244 .LBB14:
245 00de E091 0000 lds r30,rputchar
246 00e2 F091 0000 lds r31,(rputchar)+1
247 00e6 8AE0 ldi r24,lo8(10)
248 00e8 0995 icall
249 .LBE14:
250 .LBE13:
251 /* epilogue: frame size=0 */
252 00ea 0895 ret
253 /* epilogue end (size=1) */
254 /* function rprintfCRLF size 13 (12) */
255 .LFE7:
257 .global rprintfu04
259 rprintfu04:
260 .LFB8:
261 .LM22:
262 /* prologue: frame size=0 */
263 /* prologue end (size=0) */
264 .LBB15:
265 .LBB16:
266 .LM23:
267 00ec E82F mov r30,r24
268 00ee FF27 clr r31
269 00f0 EF70 andi r30,lo8(15)
270 00f2 F070 andi r31,hi8(15)
271 00f4 E050 subi r30,lo8(-(HexChars))
272 00f6 F040 sbci r31,hi8(-(HexChars))
273 /* #APP */
274 00f8 8491 lpm r24, Z
275
276 /* #NOAPP */
277 .LBE16:
278 .LBB17:
279 .LM24:
280 00fa E091 0000 lds r30,rputchar
281 00fe F091 0000 lds r31,(rputchar)+1
282 0102 0995 icall
283 .LBE17:
284 .LBE15:
285 /* epilogue: frame size=0 */
286 0104 0895 ret
287 /* epilogue end (size=1) */
288 /* function rprintfu04 size 16 (15) */
289 .LFE8:
291 .global rprintfu08
293 rprintfu08:
294 .LFB9:
295 .LM25:
296 /* prologue: frame size=0 */
297 0106 1F93 push r17
298 /* prologue end (size=1) */
299 0108 182F mov r17,r24
300 .LM26:
301 010a 8295 swap r24
302 010c 8F70 andi r24,0x0f
303 010e 0E94 0000 call rprintfu04
304 .LM27:
305 0112 812F mov r24,r17
306 0114 0E94 0000 call rprintfu04
307 /* epilogue: frame size=0 */
308 0118 1F91 pop r17
309 011a 0895 ret
310 /* epilogue end (size=2) */
311 /* function rprintfu08 size 11 (8) */
312 .LFE9:
314 .global rprintfu16
316 rprintfu16:
317 .LFB10:
318 .LM28:
319 /* prologue: frame size=0 */
320 011c 0F93 push r16
321 011e 1F93 push r17
322 /* prologue end (size=2) */
323 0120 8C01 movw r16,r24
324 .LM29:
325 0122 812F mov r24,r17
326 0124 9927 clr r25
327 0126 0E94 0000 call rprintfu08
328 .LM30:
329 012a 802F mov r24,r16
330 012c 0E94 0000 call rprintfu08
331 /* epilogue: frame size=0 */
332 0130 1F91 pop r17
333 0132 0F91 pop r16
334 0134 0895 ret
335 /* epilogue end (size=3) */
336 /* function rprintfu16 size 13 (8) */
337 .LFE10:
339 .global rprintfu32
341 rprintfu32:
342 .LFB11:
343 .LM31:
344 /* prologue: frame size=0 */
345 0136 EF92 push r14
346 0138 FF92 push r15
347 013a 0F93 push r16
348 013c 1F93 push r17
349 /* prologue end (size=4) */
350 013e 7B01 movw r14,r22
351 0140 8C01 movw r16,r24
352 .LM32:
353 0142 C801 movw r24,r16
354 0144 AA27 clr r26
355 0146 BB27 clr r27
356 0148 0E94 0000 call rprintfu16
357 .LM33:
358 014c C701 movw r24,r14
359 014e 0E94 0000 call rprintfu16
360 /* epilogue: frame size=0 */
361 0152 1F91 pop r17
362 0154 0F91 pop r16
363 0156 FF90 pop r15
364 0158 EF90 pop r14
365 015a 0895 ret
366 /* epilogue end (size=5) */
367 /* function rprintfu32 size 19 (10) */
368 .LFE11:
370 .global Isdigit
372 Isdigit:
373 .LFB13:
374 .LM34:
375 /* prologue: frame size=0 */
376 /* prologue end (size=0) */
377 .LM35:
378 015c 8053 subi r24,lo8(-(-48))
379 015e 8A30 cpi r24,lo8(10)
380 0160 18F4 brsh .L41
381 .LM36:
382 0162 8FEF ldi r24,lo8(255)
383 0164 90E0 ldi r25,hi8(255)
384 0166 0895 ret
385 .L41:
386 .LM37:
387 0168 80E0 ldi r24,lo8(0)
388 016a 90E0 ldi r25,hi8(0)
389 .LM38:
390 016c 0895 ret
391 /* epilogue: frame size=0 */
392 /* epilogue: noreturn */
393 /* epilogue end (size=0) */
394 /* function Isdigit size 9 (9) */
395 .LFE13:
397 .global atoiRamRom
399 atoiRamRom:
400 .LFB14:
401 .LM39:
402 /* prologue: frame size=0 */
403 016e FF92 push r15
404 0170 0F93 push r16
405 0172 1F93 push r17
406 0174 CF93 push r28
407 0176 DF93 push r29
408 /* prologue end (size=5) */
409 0178 F82E mov r15,r24
410 017a EB01 movw r28,r22
411 .LM40:
412 017c 00E0 ldi r16,lo8(0)
413 017e 10E0 ldi r17,hi8(0)
414 .LM41:
415 0180 1EC0 rjmp .L44
416 .L50:
417 .LM42:
418 0182 C801 movw r24,r16
419 0184 23E0 ldi r18,3
420 0186 880F 1: lsl r24
421 0188 991F rol r25
422 018a 2A95 dec r18
423 018c E1F7 brne 1b
424 018e 800F add r24,r16
425 0190 911F adc r25,r17
426 0192 080F add r16,r24
427 0194 191F adc r17,r25
428 0196 9E01 movw r18,r28
429 0198 2F5F subi r18,lo8(-(1))
430 019a 3F4F sbci r19,hi8(-(1))
431 .LM43:
432 019c FF20 tst r15
433 019e 41F0 breq .L48
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -