0,0 → 1,363 |
1 .file "base64.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 .global base64_decode |
20 base64_decode: |
21 .LFB5: |
22 .LM1: |
23 /* prologue: frame size=0 */ |
24 /* prologue end (size=0) */ |
25 0000 A82F mov r26,r24 |
26 .LM2: |
27 0002 62E0 ldi r22,lo8(2) |
28 .LM3: |
29 0004 70E0 ldi r23,lo8(0) |
30 .L7: |
31 .LM4: |
32 0006 6A17 cp r22,r26 |
33 0008 B0F5 brsh .L6 |
34 .LM5: |
35 000a E62F mov r30,r22 |
36 000c FF27 clr r31 |
37 000e E050 subi r30,lo8(-(r_buffer)) |
38 0010 F040 sbci r31,hi8(-(r_buffer)) |
39 0012 8081 ld r24,Z |
40 0014 8D53 subi r24,lo8(-(-61)) |
41 .LM6: |
42 0016 3181 ldd r19,Z+1 |
43 0018 3D53 subi r19,lo8(-(-61)) |
44 .LM7: |
45 001a 5281 ldd r21,Z+2 |
46 001c 5D53 subi r21,lo8(-(-61)) |
47 .LM8: |
48 001e 4381 ldd r20,Z+3 |
49 0020 4D53 subi r20,lo8(-(-61)) |
50 .LM9: |
51 0022 6C5F subi r22,lo8(-(4)) |
52 .LM10: |
53 0024 E72F mov r30,r23 |
54 0026 FF27 clr r31 |
55 0028 E050 subi r30,lo8(-(p_buffer)) |
56 002a F040 sbci r31,hi8(-(p_buffer)) |
57 002c 9927 clr r25 |
58 002e 880F lsl r24 |
59 0030 991F rol r25 |
60 0032 880F lsl r24 |
61 0034 991F rol r25 |
62 0036 232F mov r18,r19 |
63 0038 2295 swap r18 |
64 003a 2F70 andi r18,0x0f |
65 003c 282B or r18,r24 |
66 003e 2083 st Z,r18 |
67 .LM11: |
68 0040 832F mov r24,r19 |
69 0042 9927 clr r25 |
70 0044 8F70 andi r24,lo8(15) |
71 0046 9070 andi r25,hi8(15) |
72 0048 34E0 ldi r19,4 |
73 004a 880F 1: lsl r24 |
74 004c 991F rol r25 |
75 004e 3A95 dec r19 |
76 0050 E1F7 brne 1b |
77 0052 252F mov r18,r21 |
78 0054 2695 lsr r18 |
79 0056 2695 lsr r18 |
80 0058 282B or r18,r24 |
81 005a 2183 std Z+1,r18 |
82 .LM12: |
83 005c 852F mov r24,r21 |
84 005e 9927 clr r25 |
85 0060 8370 andi r24,lo8(3) |
86 0062 9070 andi r25,hi8(3) |
87 0064 26E0 ldi r18,6 |
88 0066 880F 1: lsl r24 |
89 0068 991F rol r25 |
90 006a 2A95 dec r18 |
91 006c E1F7 brne 1b |
92 006e 482B or r20,r24 |
93 0070 4283 std Z+2,r20 |
94 .LM13: |
95 0072 7D5F subi r23,lo8(-(3)) |
96 0074 C8CF rjmp .L7 |
97 .L6: |
98 .LM14: |
99 0076 872F mov r24,r23 |
100 0078 9927 clr r25 |
101 /* epilogue: frame size=0 */ |
102 007a 0895 ret |
103 /* epilogue end (size=1) */ |
104 /* function base64_decode size 62 (61) */ |
105 .LFE5: |
107 .global get_message |
109 get_message: |
110 .LFB4: |
111 .LM15: |
112 /* prologue: frame size=0 */ |
113 007c CF93 push r28 |
114 /* prologue end (size=1) */ |
115 .LM16: |
116 007e 84E1 ldi r24,lo8(20) |
117 0080 8093 0000 sts timer,r24 |
118 .L9: |
119 .LM17: |
120 0084 0E94 0000 call RS232_get |
121 0088 8332 cpi r24,lo8(35) |
122 008a 21F0 breq .L10 |
123 008c 8091 0000 lds r24,timer |
124 0090 8823 tst r24 |
125 0092 C1F7 brne .L9 |
126 .L10: |
127 .LM18: |
128 0094 8091 0000 lds r24,timer |
129 0098 8823 tst r24 |
130 009a 99F0 breq .L12 |
131 .LM19: |
132 009c C0E0 ldi r28,lo8(0) |
133 .L13: |
134 .LM20: |
135 009e 0E94 0000 call RS232_get |
136 .LM21: |
137 00a2 EC2F mov r30,r28 |
138 00a4 FF27 clr r31 |
139 00a6 E050 subi r30,lo8(-(r_buffer)) |
140 00a8 F040 sbci r31,hi8(-(r_buffer)) |
141 00aa 8083 st Z,r24 |
142 00ac CF5F subi r28,lo8(-(1)) |
143 .LM22: |
144 00ae C7FD sbrc r28,7 |
145 .LM23: |
146 00b0 CFE7 ldi r28,lo8(127) |
147 .L15: |
148 .LM24: |
149 00b2 8D30 cpi r24,lo8(13) |
150 00b4 A1F7 brne .L13 |
151 .LM25: |
152 00b6 8C2F mov r24,r28 |
153 00b8 0E94 0000 call base64_decode |
154 .LM26: |
155 00bc 80E0 ldi r24,lo8(0) |
156 00be 90E0 ldi r25,hi8(0) |
157 00c0 02C0 rjmp .L8 |
158 .L12: |
159 .LM27: |
160 00c2 81E0 ldi r24,lo8(1) |
161 00c4 90E0 ldi r25,hi8(1) |
162 .L8: |
163 /* epilogue: frame size=0 */ |
164 00c6 CF91 pop r28 |
165 00c8 0895 ret |
166 /* epilogue end (size=2) */ |
167 /* function get_message size 40 (37) */ |
168 .LFE4: |
170 .global base64_send |
172 base64_send: |
173 .LFB6: |
174 .LM28: |
175 /* prologue: frame size=0 */ |
176 00ca FF92 push r15 |
177 00cc 0F93 push r16 |
178 00ce 1F93 push r17 |
179 00d0 CF93 push r28 |
180 /* prologue end (size=4) */ |
181 00d2 A82F mov r26,r24 |
182 .LM29: |
183 00d4 8091 0000 lds r24,p_buffer |
184 00d8 8093 0000 sts r_buffer,r24 |
185 .LM30: |
186 00dc 8091 0000 lds r24,p_buffer+1 |
187 00e0 8093 0000 sts r_buffer+1,r24 |
188 .LM31: |
189 00e4 8091 0000 lds r24,p_buffer+2 |
190 00e8 8093 0000 sts r_buffer+2,r24 |
191 .LM32: |
192 00ec 43E0 ldi r20,lo8(3) |
193 00ee F42E mov r15,r20 |
194 .LM33: |
195 00f0 7F2D mov r23,r15 |
196 .LM34: |
197 00f2 FA16 cp r15,r26 |
198 00f4 E0F5 brsh .L31 |
199 .L21: |
200 .LM35: |
201 00f6 E72F mov r30,r23 |
202 00f8 FF27 clr r31 |
203 00fa E050 subi r30,lo8(-(p_buffer)) |
204 00fc F040 sbci r31,hi8(-(p_buffer)) |
205 00fe 9081 ld r25,Z |
206 .LM36: |
207 0100 2181 ldd r18,Z+1 |
208 .LM37: |
209 0102 6281 ldd r22,Z+2 |
210 .LM38: |
211 0104 7D5F subi r23,lo8(-(3)) |
212 .LM39: |
213 0106 EF2D mov r30,r15 |
214 0108 FF27 clr r31 |
215 010a E050 subi r30,lo8(-(r_buffer)) |
216 010c F040 sbci r31,hi8(-(r_buffer)) |
217 010e 892F mov r24,r25 |
218 0110 8695 lsr r24 |
219 0112 8695 lsr r24 |
220 0114 835C subi r24,lo8(-(61)) |
221 0116 8083 st Z,r24 |
222 .LM40: |
223 0118 892F mov r24,r25 |
224 011a 9927 clr r25 |
225 011c 8370 andi r24,lo8(3) |
226 011e 9070 andi r25,hi8(3) |
227 0120 34E0 ldi r19,4 |
228 0122 880F 1: lsl r24 |
229 0124 991F rol r25 |
230 0126 3A95 dec r19 |
231 0128 E1F7 brne 1b |
232 012a 422F mov r20,r18 |
233 012c 5527 clr r21 |
234 012e 9A01 movw r18,r20 |
235 0130 94E0 ldi r25,4 |
236 0132 3695 1: lsr r19 |
237 0134 2795 ror r18 |
238 0136 9A95 dec r25 |
239 0138 E1F7 brne 1b |
240 013a 822B or r24,r18 |
241 013c 835C subi r24,lo8(-(61)) |
242 013e 8183 std Z+1,r24 |
243 .LM41: |
244 0140 4F70 andi r20,lo8(15) |
245 0142 5070 andi r21,hi8(15) |
246 0144 440F lsl r20 |
247 0146 551F rol r21 |
248 0148 440F lsl r20 |
249 014a 551F rol r21 |
250 014c 862F mov r24,r22 |
251 014e 9927 clr r25 |
252 0150 16E0 ldi r17,6 |
253 0152 9695 1: lsr r25 |
254 0154 8795 ror r24 |
255 0156 1A95 dec r17 |
256 0158 E1F7 brne 1b |
257 015a 842B or r24,r20 |
258 015c 835C subi r24,lo8(-(61)) |
259 015e 8283 std Z+2,r24 |
260 .LM42: |
261 0160 6F73 andi r22,lo8(63) |
262 0162 635C subi r22,lo8(-(61)) |
263 0164 6383 std Z+3,r22 |
264 .LM43: |
265 0166 84E0 ldi r24,lo8(4) |
266 0168 F80E add r15,r24 |
267 016a 7A17 cp r23,r26 |
268 016c 20F2 brlo .L21 |
269 .L31: |
270 .LM44: |
271 016e 20E0 ldi r18,lo8(0) |
272 0170 30E0 ldi r19,hi8(0) |
273 .LM45: |
274 0172 C0E0 ldi r28,lo8(0) |
275 0174 CF15 cp r28,r15 |
276 0176 40F4 brsh .L33 |
277 0178 E0E0 ldi r30,lo8(r_buffer) |
278 017a F0E0 ldi r31,hi8(r_buffer) |
279 .L25: |
280 .LM46: |
281 017c 8191 ld r24,Z+ |
282 017e 280F add r18,r24 |
283 0180 311D adc r19,__zero_reg__ |
284 .LM47: |
285 0182 CF5F subi r28,lo8(-(1)) |
286 0184 CF15 cp r28,r15 |
287 0186 D0F3 brlo .L25 |
288 .L33: |
289 .LM48: |
290 0188 3F70 andi r19,hi8(4095) |
291 .LM49: |
292 018a EF2D mov r30,r15 |
293 018c FF27 clr r31 |
294 018e E050 subi r30,lo8(-(r_buffer)) |
295 0190 F040 sbci r31,hi8(-(r_buffer)) |
296 0192 C901 movw r24,r18 |
297 0194 C6E0 ldi r28,6 |
298 0196 9695 1: lsr r25 |
299 0198 8795 ror r24 |
300 019a CA95 dec r28 |
301 019c E1F7 brne 1b |
302 019e 835C subi r24,lo8(-(61)) |
303 01a0 8083 st Z,r24 |
304 .LM50: |
305 01a2 2F73 andi r18,lo8(63) |
306 01a4 3070 andi r19,hi8(63) |
307 01a6 822F mov r24,r18 |
308 01a8 835C subi r24,lo8(-(61)) |
309 01aa 8183 std Z+1,r24 |
310 .LM51: |
311 01ac 8DE0 ldi r24,lo8(13) |
312 01ae 8283 std Z+2,r24 |
313 .LM52: |
314 01b0 1382 std Z+3,__zero_reg__ |
315 .LM53: |
316 01b2 83E0 ldi r24,lo8(3) |
317 01b4 F80E add r15,r24 |
318 .LM54: |
319 01b6 C381 ldd r28,Z+3 |
320 01b8 CF15 cp r28,r15 |
321 01ba 50F4 brsh .L35 |
322 01bc 00E0 ldi r16,lo8(r_buffer) |
323 01be 10E0 ldi r17,hi8(r_buffer) |
324 .L29: |
325 .LM55: |
326 01c0 F801 movw r30,r16 |
327 01c2 8191 ld r24,Z+ |
328 01c4 8F01 movw r16,r30 |
329 01c6 0E94 0000 call RS232_send |
330 .LM56: |
331 01ca CF5F subi r28,lo8(-(1)) |
332 01cc CF15 cp r28,r15 |
333 01ce C0F3 brlo .L29 |
334 .L35: |
335 /* epilogue: frame size=0 */ |
336 01d0 CF91 pop r28 |
337 01d2 1F91 pop r17 |
338 01d4 0F91 pop r16 |
339 01d6 FF90 pop r15 |
340 01d8 0895 ret |
341 /* epilogue end (size=5) */ |
342 /* function base64_send size 137 (128) */ |
343 .LFE6: |
345 .comm r_buffer,128,1 |
346 .comm p_buffer,128,1 |
347 .comm display_buffer,1024,1 |
348 .comm display_buffer_pointer,2,1 |
349 .comm display_buffer_counter,1,1 |
350 .comm display_page_counter,1,1 |
351 .comm display_mode,1,1 |
352 .Letext0: |
DEFINED SYMBOLS |
*ABS*:00000000 base64.c |
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccmIaaaa.s:3 *ABS*:0000003f __SREG__ |
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccmIaaaa.s:4 *ABS*:0000003e __SP_H__ |
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccmIaaaa.s:5 *ABS*:0000003d __SP_L__ |
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccmIaaaa.s:6 *ABS*:00000000 __tmp_reg__ |
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccmIaaaa.s:7 *ABS*:00000001 __zero_reg__ |
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccmIaaaa.s:20 .text:00000000 base64_decode |
*COM*:00000080 r_buffer |
*COM*:00000080 p_buffer |
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccmIaaaa.s:109 .text:0000007c get_message |
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccmIaaaa.s:172 .text:000000ca base64_send |
*COM*:00000400 display_buffer |
*COM*:00000002 display_buffer_pointer |
*COM*:00000001 display_buffer_counter |
*COM*:00000001 display_page_counter |
*COM*:00000001 display_mode |
|
UNDEFINED SYMBOLS |
__do_copy_data |
__do_clear_bss |
timer |
RS232_get |
RS232_send |