Advertisement
Guest User

Untitled

a guest
Sep 14th, 2019
275
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ARM 0.94 KB | None | 0 0
  1. .data
  2.  
  3. .balign 4
  4.     array:  .word 6, 8, 4, 7, 3, 2, 5, 1
  5.     size:   .word 8
  6.     prt_str: .asciz "%d\n"
  7.  
  8. .text
  9.  
  10. .extern printf
  11. .global main
  12.  
  13. main:
  14.     push {lr}
  15.     mov r1, #0      /* i */
  16.     ldr r0, =array
  17.     ldr r7, =size
  18.     ldr r7, [r7]
  19.  
  20. outer_for:
  21.     cmp r1, r7
  22.     beq outer_for_done
  23.  
  24.     mov r2, #0      // j
  25. inner_for:
  26.     add r3, r2, #1  // j+1
  27.     sub r4, r7, #1  // count-1
  28.     cmp r3, r4
  29.     beq inner_for_done
  30. if:
  31.     ldr r5, [r0, +r2, lsl #2]
  32.     ldr r6, [r0, +r3, lsl #2]
  33.     cmp r5, r6
  34.     ble if_done
  35.     str r5, [r0, +r3, lsl #2]
  36.     str r6, [r0, +r2, lsl #2]
  37. if_done:
  38.     add r2, r2, #1
  39.     b inner_for
  40. inner_for_done:
  41.     add r1, r1, #1
  42.     b outer_for
  43. outer_for_done:
  44.     mov r4, r0
  45.     mov r5, #0
  46. print:
  47.     cmp r5, r7
  48.     bge fin
  49.     ldr r0, =prt_str
  50.     ldr r1, [r4, r5, lsl #2]
  51.     bl printf
  52.     add r5, r5, #1
  53.     b print
  54.  
  55.  
  56.  
  57. fin:
  58.     mov r0, #0
  59.     pop {lr}
  60.     bx lr
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement