Advertisement
Guest User

Untitled

a guest
Oct 15th, 2019
197
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.91 KB | None | 0 0
  1. .text
  2. .global sort_by_age
  3.  
  4.  
  5. // r0 - N
  6. // r1 - pointer
  7. // r2 - i
  8. // r3 - j
  9. // r4 - max_i = n - 2
  10. // r5 - max_j = n - i - 2
  11. // r6 - shift
  12. // r7/r8 = arr[j]/arr[j + 1]
  13. // r9 - swap_loop
  14.  
  15. sort_by_age:
  16. push {r4-r9, lr}
  17.  
  18. mov r4, r0
  19. sub r4, #2
  20.  
  21. mov r2, #-1
  22.  
  23. for_i:
  24. add r2, #1
  25. cmp r2, r4
  26. bgt exit
  27.  
  28. mov r5, r4
  29. sub r5, r2
  30.  
  31. mov r3, #-1
  32.  
  33. for_j:
  34. add r3, #1
  35. cmp r3, r5
  36. bgt for_i
  37.  
  38. mov r6, #48
  39. mul r6, r3
  40. add r6, #4
  41. ldr r7, [r1, r6]
  42. add r6, #48
  43. ldr r8, [r1, r6]
  44.  
  45. cmp r7, r8
  46. bgt swap
  47. b for_j
  48.  
  49. swap:
  50. mov r9, #-1
  51. sub r6, #52
  52.  
  53. swap_loop:
  54. add r9, #1
  55. cmp r9, #12
  56. beq for_j
  57.  
  58. ldr r7, [r1, r6]
  59. add r6, #48
  60. ldr r8, [r1, r6]
  61. str r7, [r1, r6]
  62. sub r6, #48
  63. str r8, [r1, r6]
  64. add r6, #4
  65. b swap_loop
  66.  
  67. exit:
  68. pop {r4-r9, lr}
  69. bx lr
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement