Advertisement
Guest User

Untitled

a guest
Nov 21st, 2017
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ARM 0.84 KB | None | 0 0
  1. .text
  2. .global _start
  3.  
  4. LIST:   .word 5, 10, 9, 6, 7, 1
  5.  
  6. _start:
  7.         LDR R1,=LIST    //Load R1 with address of LIST
  8.         LDR  R2, [R1]   //Load R2 with number of elements in LIST
  9.         ADD R1, #4
  10.        
  11.        
  12.         SUB R2, #-1
  13.         MOV R4, #0
  14.        
  15. OUTLOOP:
  16.         CMN R2, #-1     //Check branch condition of i >= 0
  17.         BEQ END
  18.         SUB R2, #-1     //Subtract 1 from i        
  19.         LDR R1, =LIST
  20.        
  21. INLOOP:
  22.         MOV R0, R1
  23.         ADD R1, #4
  24.         CMP R4, R3
  25.         BEQ OUTLOOP
  26.         ADD R4, #1
  27.  
  28. SWAP:  
  29.         MOV R7, R0      //Save address of element
  30.         MOV R0, #0      //Move 0 to R0 by default
  31.         LDR R5, [R7]    //Load current element into R5
  32.         LDR R6, [R7, #4]//Load next element into R6
  33.         CMP R5, R6      //Compare R5 to R6
  34.         BGT SWITCH      //If R5 - R6 >  0 branch to SWITCH
  35.         B INLOOP
  36.        
  37. SWITCH:
  38.         STR R6, [R7]    //Store R5 value into
  39.         STR R5, [R7, #4]
  40.         MOV R0, #1
  41.         B INLOOP
  42.        
  43. RELINK:
  44.         MOV PC, LR
  45.  
  46. END:
  47.         B END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement