Subversion Repositories Projects

Rev

Blame | Last modification | View Log | RSS feed

   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