Advertisement
mattysmith22

Broken Bubble ARM

Jan 23rd, 2019
1,993
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ARM 1.08 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.             ADD R2, R0, #4
  11.  
  12. pas_lp      MOV R6, #0
  13.             MOV R3, #0
  14.             B swp_lp_cnd
  15. swp_lp      LDR R4, [R0, R3 ASL #2]
  16.             LDR R5, [R2, R3 ASL #2]
  17.             CMP R4, R5
  18.             STRLT R4, [R2, R3 ASL #2]
  19.             STRLT R5, [R0, R3 ASL #2]
  20.             MOV R6, #1
  21. skip_swp    ADD R3, R3, #1
  22.  
  23. swp_lp_cnd  CMP R3, R1
  24.             BLT swp_lp
  25.  
  26.             SUB R1, R1, #1
  27.  
  28.             CMP R6, #0
  29.             BEQ pas_lp
  30.  
  31.             LDMFD SP!, {R4-R6}
  32.             MOV PC, R14
  33.            
  34.  
  35. main        MOV SP, #1000
  36.             ADR R0, array
  37.             LDR R1, size
  38.             B bubble
  39.  
  40.             ADR R1, array
  41.             LDR R2, size
  42.             ADD R2, R1, R2
  43.  
  44. prt_lp      LDR R0, [R1], #4
  45.             SWI 4
  46.             MOV R0, #10
  47.             SWI 0
  48. prt_lp_cnd  CMP R1, R2
  49.             BLT prt_lp
  50.             SWI 2
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement