1 .file "move.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 translateAngulartoLinear 20 translateAngulartoLinear: 21 .LFB4: 22 .LM1: 23 /* prologue: frame size=0 */ 24 0000 8F92 push r8 25 0002 9F92 push r9 26 0004 AF92 push r10 27 0006 BF92 push r11 28 0008 CF92 push r12 29 000a DF92 push r13 30 000c EF92 push r14 31 000e FF92 push r15 32 0010 0F93 push r16 33 0012 1F93 push r17 34 0014 CF93 push r28 35 0016 DF93 push r29 36 /* prologue end (size=12) */ 37 .LVL0: 38 0018 FC01 movw r30,r24 39 001a 4A01 movw r8,r20 40 001c E901 movw r28,r18 41 .LVL1: 42 .LM2: 43 001e 8150 subi r24,lo8(-(255)) 44 0020 9F4F sbci r25,hi8(-(255)) 45 0022 8F5F subi r24,lo8(511) 46 0024 9140 sbci r25,hi8(511) 47 .LVL2: 48 0026 00F0 brlo .+2 49 0028 00C0 rjmp .L14 50 .LVL3: 51 .LM3: 52 002a 8FEF ldi r24,hi8(-255) 53 002c 6130 cpi r22,lo8(-255) 54 002e 7807 cpc r23,r24 55 0030 04F4 brge .+2 56 0032 00C0 rjmp .L14 57 0034 6F3F cpi r22,255 58 0036 7105 cpc r23,__zero_reg__ 59 0038 01F0 breq .+4 60 003a 04F0 brlt .+2 61 003c 00C0 rjmp .L14 62 .LM4: 63 003e CB01 movw r24,r22 64 0040 880F lsl r24 65 0042 991F rol r25 66 0044 860F add r24,r22 67 0046 971F adc r25,r23 68 0048 9F01 movw r18,r30 69 004a 280F add r18,r24 70 004c 391F adc r19,r25 71 004e 5901 movw r10,r18 72 0050 CC24 clr r12 73 0052 B7FC sbrc r11,7 74 0054 C094 com r12 75 0056 DC2C mov r13,r12 76 .LVL4: 77 .LM5: 78 0058 E81B sub r30,r24 79 005a F90B sbc r31,r25 80 005c 7F01 movw r14,r30 81 005e 0027 clr r16 82 0060 F7FC sbrc r15,7 83 0062 0095 com r16 84 0064 102F mov r17,r16 85 .LVL5: 86 .LM6: 87 0066 EFEF ldi r30,lo8(255) 88 0068 AE16 cp r10,r30 89 006a B104 cpc r11,__zero_reg__ 90 006c C104 cpc r12,__zero_reg__ 91 006e D104 cpc r13,__zero_reg__ 92 .LVL6: 93 0070 01F0 breq .L6 94 0072 04F0 brlt .L6 95 .LM7: 96 0074 C801 movw r24,r16 97 0076 B701 movw r22,r14 98 .LVL7: 99 0078 2FEF ldi r18,lo8(255) 100 007a 30E0 ldi r19,hi8(255) 101 007c 40E0 ldi r20,hlo8(255) 102 007e 50E0 ldi r21,hhi8(255) 103 0080 0E94 0000 call __mulsi3 104 0084 A601 movw r20,r12 105 0086 9501 movw r18,r10 106 0088 0E94 0000 call __divmodsi4 107 008c 7901 movw r14,r18 108 008e 8A01 movw r16,r20 109 0090 3FEF ldi r19,lo8(255) 110 0092 A32E mov r10,r19 111 0094 B12C mov r11,__zero_reg__ 112 0096 C12C mov r12,__zero_reg__ 113 0098 D12C mov r13,__zero_reg__ 114 .LVL8: 115 .L6: 116 .LM8: 117 009a FFEF ldi r31,lo8(255) 118 009c EF16 cp r14,r31 119 009e F104 cpc r15,__zero_reg__ 120 00a0 0105 cpc r16,__zero_reg__ 121 00a2 1105 cpc r17,__zero_reg__ 122 00a4 01F0 breq .L8 123 00a6 04F0 brlt .L8 124 .LM9: 125 00a8 C601 movw r24,r12 126 00aa B501 movw r22,r10 127 .LVL9: 128 00ac 2FEF ldi r18,lo8(255) 129 00ae 30E0 ldi r19,hi8(255) 130 00b0 40E0 ldi r20,hlo8(255) 131 00b2 50E0 ldi r21,hhi8(255) 132 00b4 0E94 0000 call __mulsi3 133 00b8 A801 movw r20,r16 134 00ba 9701 movw r18,r14 135 00bc 0E94 0000 call __divmodsi4 136 00c0 5901 movw r10,r18 137 00c2 6A01 movw r12,r20 138 00c4 2FEF ldi r18,lo8(255) 139 00c6 E22E mov r14,r18 140 00c8 F12C mov r15,__zero_reg__ 141 00ca 012D mov r16,__zero_reg__ 142 00cc 112D mov r17,__zero_reg__ 143 .LVL10: 144 .L8: 145 .LM10: 146 00ce 21E0 ldi r18,lo8(-255) 147 00d0 A216 cp r10,r18 148 00d2 2FEF ldi r18,hi8(-255) 149 00d4 B206 cpc r11,r18 150 00d6 2FEF ldi r18,hlo8(-255) 151 00d8 C206 cpc r12,r18 152 00da 2FEF ldi r18,hhi8(-255) 153 00dc D206 cpc r13,r18 154 00de 04F4 brge .L10 155 .LM11: 156 00e0 C801 movw r24,r16 157 00e2 B701 movw r22,r14 158 .LVL11: 159 00e4 21E0 ldi r18,lo8(-255) 160 00e6 3FEF ldi r19,hi8(-255) 161 00e8 4FEF ldi r20,hlo8(-255) 162 00ea 5FEF ldi r21,hhi8(-255) 163 00ec 0E94 0000 call __mulsi3 164 00f0 A601 movw r20,r12 165 00f2 9501 movw r18,r10 166 00f4 0E94 0000 call __divmodsi4 167 00f8 7901 movw r14,r18 168 00fa 8A01 movw r16,r20 169 00fc 91E0 ldi r25,lo8(-255) 170 00fe A92E mov r10,r25 171 0100 9FEF ldi r25,hi8(-255) 172 0102 B92E mov r11,r25 173 0104 9FEF ldi r25,hlo8(-255) 174 0106 C92E mov r12,r25 175 0108 9FEF ldi r25,hhi8(-255) 176 010a D92E mov r13,r25 177 .LVL12: 178 .L10: 179 .LM12: 180 010c 81E0 ldi r24,lo8(-255) 181 010e E816 cp r14,r24 182 0110 8FEF ldi r24,hi8(-255) 183 0112 F806 cpc r15,r24 184 0114 8FEF ldi r24,hlo8(-255) 185 0116 0807 cpc r16,r24 186 0118 8FEF ldi r24,hhi8(-255) 187 011a 1807 cpc r17,r24 188 011c 04F4 brge .L12 189 .LM13: 190 011e C601 movw r24,r12 191 0120 B501 movw r22,r10 192 .LVL13: 193 0122 21E0 ldi r18,lo8(-255) 194 0124 3FEF ldi r19,hi8(-255) 195 0126 4FEF ldi r20,hlo8(-255) 196 0128 5FEF ldi r21,hhi8(-255) 197 012a 0E94 0000 call __mulsi3 198 012e A801 movw r20,r16 199 0130 9701 movw r18,r14 200 0132 0E94 0000 call __divmodsi4 201 0136 5901 movw r10,r18 202 0138 6A01 movw r12,r20 203 013a 81E0 ldi r24,lo8(-255) 204 013c E82E mov r14,r24 205 013e 8FEF ldi r24,hi8(-255) 206 0140 F82E mov r15,r24 207 0142 8FEF ldi r24,hlo8(-255) 208 0144 082F mov r16,r24 209 0146 8FEF ldi r24,hhi8(-255) 210 0148 182F mov r17,r24 211 .LVL14: 212 .L12: 213 .LM14: 214 014a B982 std Y+1,r11 215 014c A882 st Y,r10 216 .LM15: 217 014e F401 movw r30,r8 218 0150 F182 std Z+1,r15 219 0152 E082 st Z,r14 220 .LVL15: 221 .L14: 222 /* epilogue: frame size=0 */ 223 0154 DF91 pop r29 224 0156 CF91 pop r28 225 0158 1F91 pop r17 226 015a 0F91 pop r16 227 015c FF90 pop r15 228 015e EF90 pop r14 229 0160 DF90 pop r13 230 0162 CF90 pop r12 231 0164 BF90 pop r11 232 0166 AF90 pop r10 233 0168 9F90 pop r9 234 016a 8F90 pop r8 235 016c 0895 ret 236 /* epilogue end (size=13) */ 237 /* function translateAngulartoLinear size 184 (159) */ 238 .LFE4: 240 .global move_avoid 242 move_avoid: 243 .LFB3: 244 .LM16: 245 /* prologue: frame size=4 */ 246 016e CF92 push r12 247 0170 DF92 push r13 248 0172 EF92 push r14 249 0174 FF92 push r15 250 0176 0F93 push r16 251 0178 1F93 push r17 252 017a CF93 push r28 253 017c DF93 push r29 254 017e CDB7 in r28,__SP_L__ 255 0180 DEB7 in r29,__SP_H__ 256 0182 2497 sbiw r28,4 257 0184 0FB6 in __tmp_reg__,__SREG__ 258 0186 F894 cli 259 0188 DEBF out __SP_H__,r29 260 018a 0FBE out __SREG__,__tmp_reg__ 261 018c CDBF out __SP_L__,r28 262 /* prologue end (size=16) */ 263 .LVL16: 264 018e 6C01 movw r12,r24 265 0190 7B01 movw r14,r22 266 0192 8A01 movw r16,r20 267 .LM17: 268 0194 1C82 std Y+4,__zero_reg__ 269 0196 1B82 std Y+3,__zero_reg__ 270 .LVL17: 271 .LM18: 272 0198 1A82 std Y+2,__zero_reg__ 273 019a 1982 std Y+1,__zero_reg__ 274 .LVL18: 275 .LM19: 276 019c 86E0 ldi r24,lo8(6) 277 019e 90E0 ldi r25,hi8(6) 278 .LVL19: 279 01a0 0E94 0000 call range_read_distance 280 .LVL20: 281 .LVL21: 282 .LM20: 283 01a4 2FEF ldi r18,hi8(-1) 284 01a6 8F3F cpi r24,lo8(-1) 285 01a8 9207 cpc r25,r18 286 01aa 01F4 brne .L16 287 .LM21: 288 01ac 8091 0000 lds r24,d1 289 01b0 9091 0000 lds r25,(d1)+1 290 .L16: 291 01b4 9093 0000 sts (d1)+1,r25 292 01b8 8093 0000 sts d1,r24 293 .LM22: 294 01bc 85E0 ldi r24,lo8(5) 295 01be 90E0 ldi r25,hi8(5) 296 .LVL22: 297 01c0 0E94 0000 call range_read_distance 298 .LVL23: 299 .LM23: 300 01c4 4FEF ldi r20,hi8(-1) 301 01c6 8F3F cpi r24,lo8(-1) 302 01c8 9407 cpc r25,r20 303 01ca 01F4 brne .L18 304 01cc 8091 0000 lds r24,d2 305 01d0 9091 0000 lds r25,(d2)+1 306 .L18: 307 01d4 9093 0000 sts (d2)+1,r25 308 01d8 8093 0000 sts d2,r24 309 .LM24: 310 01dc 84E0 ldi r24,lo8(4) 311 01de 90E0 ldi r25,hi8(4) 312 .LVL24: 313 01e0 0E94 0000 call range_read_distance 314 .LVL25: 315 .LM25: 316 01e4 5FEF ldi r21,hi8(-1) 317 01e6 8F3F cpi r24,lo8(-1) 318 01e8 9507 cpc r25,r21 319 01ea 01F4 brne .L20 320 01ec 8091 0000 lds r24,d3 321 01f0 9091 0000 lds r25,(d3)+1 322 .L20: 323 01f4 9093 0000 sts (d3)+1,r25 324 01f8 8093 0000 sts d3,r24 325 .LM26: 326 01fc 83E0 ldi r24,lo8(3) 327 01fe 90E0 ldi r25,hi8(3) 328 .LVL26: 329 0200 0E94 0000 call range_read_distance 330 .LVL27: 331 .LM27: 332 0204 2FEF ldi r18,hi8(-1) 333 0206 8F3F cpi r24,lo8(-1) 334 0208 9207 cpc r25,r18 335 020a 01F4 brne .L22 336 020c 8091 0000 lds r24,d4 337 0210 9091 0000 lds r25,(d4)+1 338 .L22: 339 0214 9093 0000 sts (d4)+1,r25 340 0218 8093 0000 sts d4,r24 341 .LM28: 342 021c 82E0 ldi r24,lo8(2) 343 021e 90E0 ldi r25,hi8(2) 344 .LVL28: 345 0220 0E94 0000 call range_read_distance 346 0224 9C01 movw r18,r24 347 .LVL29: 348 .LM29: 349 0226 8F5F subi r24,lo8(-1) 350 0228 9F4F sbci r25,hi8(-1) 351 022a 01F4 brne .L24 352 .LVL30: 353 022c 2091 0000 lds r18,d5 354 0230 3091 0000 lds r19,(d5)+1 355 .L24: 356 0234 3093 0000 sts (d5)+1,r19 357 0238 2093 0000 sts d5,r18 358 .LM30: 359 023c 84E6 ldi r24,lo8(100) 360 023e 90E0 ldi r25,hi8(100) 361 .LVL31: 362 0240 801B sub r24,r16 363 0242 910B sbc r25,r17 364 0244 AC01 movw r20,r24 365 0246 E49E mul r14,r20 366 0248 C001 movw r24,r0 367 024a E59E mul r14,r21 368 024c 900D add r25,r0 369 024e F49E mul r15,r20 370 0250 900D add r25,r0 371 0252 1124 clr r1 372 0254 64E6 ldi r22,lo8(100) 373 0256 70E0 ldi r23,hi8(100) 374 0258 0E94 0000 call __divmodhi4 375 025c FB01 movw r30,r22 376 025e 8091 0000 lds r24,d4 377 0262 9091 0000 lds r25,(d4)+1 378 0266 281B sub r18,r24 379 0268 390B sbc r19,r25 380 026a 209F mul r18,r16 381 026c C001 movw r24,r0 382 026e 219F mul r18,r17 383 0270 900D add r25,r0 384 0272 309F mul r19,r16 385 0274 900D add r25,r0 386 0276 1124 clr r1 387 0278 64E6 ldi r22,lo8(100) 388 027a 70E0 ldi r23,hi8(100) 389 027c 0E94 0000 call __divmodhi4 390 0280 E60F add r30,r22 391 0282 F71F adc r31,r23 392 0284 9E01 movw r18,r28 393 .LVL32: 394 0286 2F5F subi r18,lo8(-(1)) 395 0288 3F4F sbci r19,hi8(-(1)) 396 028a AE01 movw r20,r28 397 028c 4D5F subi r20,lo8(-(3)) 398 028e 5F4F sbci r21,hi8(-(3)) 399 0290 BF01 movw r22,r30 400 0292 C601 movw r24,r12 401 0294 0E94 0000 call translateAngulartoLinear 402 .LM31: 403 0298 6B81 ldd r22,Y+3 404 029a 7C81 ldd r23,Y+4 405 029c 77FF sbrs r23,7 406 029e 00C0 rjmp .L26 407 .LM32: 408 02a0 7095 com r23 409 02a2 6195 neg r22 410 02a4 7F4F sbci r23,lo8(-1) 411 02a6 80E0 ldi r24,lo8(0) 412 02a8 90E0 ldi r25,hi8(0) 413 02aa 00C0 rjmp .L33 414 .L26: 415 .LM33: 416 02ac 81E0 ldi r24,lo8(1) 417 02ae 90E0 ldi r25,hi8(1) 418 .L33: 419 02b0 0E94 0000 call motor1_set 420 .LM34: 421 02b4 6981 ldd r22,Y+1 422 02b6 7A81 ldd r23,Y+2 423 02b8 77FF sbrs r23,7 424 02ba 00C0 rjmp .L29 425 .LM35: 426 02bc 7095 com r23 427 02be 6195 neg r22 428 02c0 7F4F sbci r23,lo8(-1) 429 02c2 80E0 ldi r24,lo8(0) 430 02c4 90E0 ldi r25,hi8(0) 431 02c6 00C0 rjmp .L34 432 .L29: 433 .LM36: 434 02c8 81E0 ldi r24,lo8(1) 435 02ca 90E0 ldi r25,hi8(1) 436 .L34: 437 02cc 0E94 0000 call motor2_set 438 /* epilogue: frame size=4 */ 439 02d0 2496 adiw r28,4 440 02d2 0FB6 in __tmp_reg__,__SREG__ 441 02d4 F894 cli 442 02d6 DEBF out __SP_H__,r29 443 02d8 0FBE out __SREG__,__tmp_reg__ 444 02da CDBF out __SP_L__,r28 445 02dc DF91 pop r29 446 02de CF91 pop r28 447 02e0 1F91 pop r17 448 02e2 0F91 pop r16 449 02e4 FF90 pop r15 450 02e6 EF90 pop r14 451 02e8 DF90 pop r13 452 02ea CF90 pop r12 453 02ec 0895 ret 454 /* epilogue end (size=15) */ 455 /* function move_avoid size 193 (162) */ 456 .LFE3: 458 .global move 460 move: 461 .LFB2: 462 .LM37: 463 /* prologue: frame size=4 */ 464 02ee CF93 push r28 465 02f0 DF93 push r29 466 02f2 CDB7 in r28,__SP_L__ 467 02f4 DEB7 in r29,__SP_H__ 468 02f6 2497 sbiw r28,4 469 02f8 0FB6 in __tmp_reg__,__SREG__ 470 02fa F894 cli 471 02fc DEBF out __SP_H__,r29 472 02fe 0FBE out __SREG__,__tmp_reg__ 473 0300 CDBF out __SP_L__,r28 474 /* prologue end (size=10) */ 475 .LVL33: 476 .LM38: 477 0302 1C82 std Y+4,__zero_reg__ 478 0304 1B82 std Y+3,__zero_reg__ 479 .LVL34: 480 .LM39: 481 0306 1A82 std Y+2,__zero_reg__ 482 0308 1982 std Y+1,__zero_reg__ 483 .LVL35: 484 .LM40: 485 030a 9E01 movw r18,r28 486 030c 2F5F subi r18,lo8(-(1)) 487 030e 3F4F sbci r19,hi8(-(1)) 488 0310 AE01 movw r20,r28 489 0312 4D5F subi r20,lo8(-(3)) 490 0314 5F4F sbci r21,hi8(-(3)) 491 0316 0E94 0000 call translateAngulartoLinear 492 .LVL36: 493 .LM41: 494 031a 6B81 ldd r22,Y+3 495 031c 7C81 ldd r23,Y+4 496 031e 77FF sbrs r23,7 497 0320 00C0 rjmp .L36 498 .LM42: 499 0322 7095 com r23 500 0324 6195 neg r22 501 0326 7F4F sbci r23,lo8(-1) 502 0328 80E0 ldi r24,lo8(0) 503 032a 90E0 ldi r25,hi8(0) 504 032c 00C0 rjmp .L43 505 .L36: 506 .LM43: 507 032e 81E0 ldi r24,lo8(1) 508 0330 90E0 ldi r25,hi8(1) 509 .L43: 510 0332 0E94 0000 call motor1_set 511 .LM44: 512 0336 6981 ldd r22,Y+1 513 0338 7A81 ldd r23,Y+2 514 033a 77FF sbrs r23,7 515 033c 00C0 rjmp .L39 516 .LM45: 517 033e 7095 com r23 518 0340 6195 neg r22 519 0342 7F4F sbci r23,lo8(-1) 520 0344 80E0 ldi r24,lo8(0) 521 0346 90E0 ldi r25,hi8(0) 522 0348 00C0 rjmp .L44 523 .L39: 524 .LM46: 525 034a 81E0 ldi r24,lo8(1) 526 034c 90E0 ldi r25,hi8(1) 527 .L44: 528 034e 0E94 0000 call motor2_set 529 /* epilogue: frame size=4 */ 530 0352 2496 adiw r28,4 531 0354 0FB6 in __tmp_reg__,__SREG__ 532 0356 F894 cli 533 0358 DEBF out __SP_H__,r29 534 035a 0FBE out __SREG__,__tmp_reg__ 535 035c CDBF out __SP_L__,r28 536 035e DF91 pop r29 537 0360 CF91 pop r28 538 0362 0895 ret 539 /* epilogue end (size=9) */ 540 /* function move size 59 (40) */ 541 .LFE2: 543 .comm d1,2,1 544 .comm d2,2,1 545 .comm d3,2,1 546 .comm d4,2,1 547 .comm d5,2,1 588 .Letext0: DEFINED SYMBOLS *ABS*:00000000 move.c F:\DOCUME~1\Evan\LOCALS~1\Temp/cclqaS86.s:3 *ABS*:0000003f __SREG__ F:\DOCUME~1\Evan\LOCALS~1\Temp/cclqaS86.s:4 *ABS*:0000003e __SP_H__ F:\DOCUME~1\Evan\LOCALS~1\Temp/cclqaS86.s:5 *ABS*:0000003d __SP_L__ F:\DOCUME~1\Evan\LOCALS~1\Temp/cclqaS86.s:6 *ABS*:00000000 __tmp_reg__ F:\DOCUME~1\Evan\LOCALS~1\Temp/cclqaS86.s:7 *ABS*:00000001 __zero_reg__ F:\DOCUME~1\Evan\LOCALS~1\Temp/cclqaS86.s:20 .text:00000000 translateAngulartoLinear F:\DOCUME~1\Evan\LOCALS~1\Temp/cclqaS86.s:242 .text:0000016e move_avoid *COM*:00000002 d1 *COM*:00000002 d2 *COM*:00000002 d3 *COM*:00000002 d4 *COM*:00000002 d5 F:\DOCUME~1\Evan\LOCALS~1\Temp/cclqaS86.s:460 .text:000002ee move UNDEFINED SYMBOLS __do_copy_data __do_clear_bss __mulsi3 __divmodsi4 range_read_distance __divmodhi4 motor1_set motor2_set