Advertisement
mattysmith22

ARM bubble sort fixed

Jan 23rd, 2019
2,033
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ARM 1.12 KB | None | 0 0
  1. B main
  2.  
  3. array       DEFW 6, 5, 8, 2, 1, 4, 3, 7, 9
  4. size        DEFW 9
  5.  
  6.             ALIGN
  7.             ;Inputs:R0: Address of the start of the array
  8.             ;       R1: Size of the array
  9. bubble      STMFD SP!, {R4-R6}
  10.             SUB R1, R1, #1
  11.             ADD R2, R0, #4
  12.  
  13. pas_lp      MOV R6, #0
  14.             MOV R3, #0
  15.             B swp_lp_cnd
  16. swp_lp      LDR R4, [R0, R3 ASL #2]
  17.             LDR R5, [R2, R3 ASL #2]
  18.             CMP R4, R5
  19.             STRLT R4, [R2, R3 ASL #2]
  20.             STRLT R5, [R0, R3 ASL #2]
  21.             MOVLT R6, #1
  22. skip_swp    ADD R3, R3, #1
  23.  
  24. swp_lp_cnd  CMP R3, R1
  25.             BLT swp_lp
  26.  
  27.             SUB R1, R1, #1
  28.  
  29.             CMP R6, #0
  30.             BNE pas_lp
  31.  
  32.             LDMFD SP!, {R4-R6}
  33.             MOV PC, R14
  34.            
  35.  
  36. main        MOV SP, #1000
  37.             ADR R0, array
  38.             LDR R1, size
  39.             BL bubble
  40.  
  41.             ADR R1, array
  42.             LDR R2, size
  43.             ADD R2, R1, R2 LSL #2
  44.  
  45. prt_lp      LDR R0, [R1], #4
  46.             SWI 4
  47.             MOV R0, #10
  48.             SWI 0
  49. prt_lp_cnd  CMP R1, R2
  50.             BLT prt_lp
  51.             SWI 2
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement