Advertisement
Guest User

Untitled

a guest
Sep 30th, 2016
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MPASM 0.74 KB | None | 0 0
  1. .data
  2. ARRAY:  .word 43, 26, 34, 28, 46, 38, 40, 20, 11, 18, 24, 44, 15, 5, 36, 1, 37, 14, 6, 33, 8, 4
  3.  
  4. .text
  5. MAIN:   la  $a0,    ARRAY       # a0: Array
  6.     li  $a1,    22      # a1: length of array
  7.     sll $t0,    $a1,    2   # t0: length in bytes
  8.    
  9. LOOP:   move    $t2,    $t1     # j = i
  10.     add $t1,    $t1,    4   # i = i + 1
  11.     bge $t1,    $t0,    DONE    # if i = size, done
  12.     add $t4,    $t1,    $a0 # t4 = ARRAY + i
  13.     lw  $t6,    0($t4)      # t6 = *ARRAY[i]
  14.        
  15. SWAPS:  blt $t2,    -4, SWX # if j < -1 goto SWX
  16.     add $t4,    $a0,    $t2 # t4 = ARRAY + j
  17.     lw  $t7,    0($t4)      # t7 = *ARRAY[j]
  18.     ble $t7,    $t6,    SWX # if ARRAY[j] <= x goto SWX
  19.     sw  $t7,    4($t4)      # ARRAY[j+1] = ARRAY[j]
  20.     sub $t2,    $t2,    4   # j = j - 1
  21.     j   SWAPS           # Return to loop
  22.    
  23. SWX:    sw  $t6,    4($t4)      # ARRAY[j+1] = x
  24.     j   LOOP            # Return to main loop
  25.    
  26. DONE:   nop
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement