MMBC

DrawCircle.asm

Oct 23rd, 2017
184
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ARM 0.80 KB | None | 0 0
  1. ; r0 = base
  2. ; r1 = setPixel X
  3. ; r2 = setPixel Y
  4. ; r3 = r
  5. ; r4 = xm
  6. ; r5 = ym
  7. ; r6 = x
  8. ; r7 = y
  9. ; r8 = err
  10. ; r9 = temp calc register
  11. ; r11 = color
  12. circle ; base, xm, ym, r, color
  13.     stmfd sp!, {r0-r12, lr}
  14.     mov r11, r4
  15.     mov r4, r1
  16.     mov r5, r2
  17.     rsb r6, r3, #0
  18.     mov r7, #0
  19.     mov r8, #2
  20.     sub r8, r8, r3, lsl #1
  21. circleloop
  22.     sub r1, r4, r6
  23.     add r2, r5, r7
  24.     bl setPixel
  25.     sub r1, r4, r7
  26.     sub r2, r5, r6
  27.     bl setPixel
  28.     add r1, r4, r6
  29.     sub r2, r5, r7
  30.     bl setPixel
  31.     add r1, r4, r7
  32.     add r2, r5, r6
  33.     bl setPixel
  34.     mov r3, r8
  35.     cmp r3, r7
  36.     addle r7, r7, #1
  37.     movle r9, r7, lsl #1
  38.     addle r9, r9, #1
  39.     addle r8, r8, r9
  40.     cmp r3, r6
  41.     bgt dc
  42.     cmp r8, r7
  43.     ble ndc
  44. dc
  45.     add r6, r6, #1
  46.     mov r9, r6, lsl #1
  47.     add r9, r9, #1
  48.     add r8, r8, r9
  49. ndc
  50.     cmp r6, #0
  51.     blt circleloop
  52.     ldmfd sp!, {r0-r12,pc}
Advertisement
Add Comment
Please, Sign In to add comment