Advertisement
Guest User

Untitled

a guest
Sep 28th, 2018
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .align 2
  2. .text
  3. .globl main
  4. main:
  5.     addi $t2, $0, 4 #;store 4
  6.    
  7.     jal Transpose #;transpose matrix
  8.    
  9.     li $v0, 4 #; print original
  10.     la $a0, strA
  11.     syscall
  12.     la $a1, Original
  13.     move $t0, $0
  14.     addi $t0, $0, 1
  15.     jal PrintMatrix
  16.    
  17.     li $v0, 4 #; print original
  18.     la $a0, strB
  19.     syscall
  20.     la $a1, Second
  21.     move $t0, $0
  22.     addi $t0, $0, 1
  23.     jal PrintMatrix
  24.    
  25.     li $v0, 10 #;end program
  26.     syscall
  27.    
  28. Transpose:
  29.     la $a1, Original
  30.     la $a2, Second
  31.    
  32.     lw $t5, ($a1)
  33.     sw $t5, ($a2)
  34.    
  35.     lw $t5, 16($a1)
  36.     sw $t5, 4($a2)
  37.    
  38.     lw $t5, 32($a1)
  39.     sw $t5, 8($a2)
  40.    
  41.     lw $t5, 48($a1)
  42.     sw $t5, 12($a2)
  43.    
  44.     lw $t5, 4($a1)
  45.     sw $t5, 16($a2)
  46.    
  47.     lw $t5, 20($a1)
  48.     sw $t5, 20($a2)
  49.    
  50.     lw $t5, 36($a1)
  51.     sw $t5, 24($a2)
  52.    
  53.     lw $t5, 52($a1)
  54.     sw $t5, 28($a2)
  55.    
  56.     lw $t5, 8($a1)
  57.     sw $t5, 32($a2)
  58.    
  59.     lw $t5, 24($a1)
  60.     sw $t5, 36($a2)
  61.    
  62.     lw $t5, 40($a1)
  63.     sw $t5, 40($a2)
  64.    
  65.     lw $t5, 56($a1)
  66.     sw $t5, 44($a2)
  67.    
  68.     lw $t5, 12($a1)
  69.     sw $t5, 48($a2)
  70.    
  71.     lw $t5, 28($a1)
  72.     sw $t5, 52($a2)
  73.    
  74.     lw $t5, 44($a1)
  75.     sw $t5, 56($a2)
  76.    
  77.     lw $t5, 60($a1)
  78.     sw $t5, 60($a2)
  79.    
  80.     jr $ra #;return address
  81.    
  82.    
  83. PrintMatrix:
  84.     bgt $t0, 16, returna
  85.         li $v0, 1 #; print number
  86.         lw $a0, ($a1)
  87.         syscall
  88.        
  89.         div $t0, $t2 #;check if end of line
  90.         mfhi $t1
  91.         beq $t1, $0, newl
  92.         bne $t1, $0, spacel
  93.        
  94.         newl:
  95.             li $v0, 4 #;print newline
  96.             la $a0, newline
  97.             syscall
  98.             j endloop
  99.            
  100.         spacel:
  101.             li $v0, 4 #;print space
  102.             la $a0, space
  103.             syscall
  104.             j endloop
  105.        
  106.         endloop:
  107.             addi $a1, $a1, 4
  108.             addi $t0, $t0, 1
  109.             j PrintMatrix
  110.         returna:
  111.             jr $ra
  112. .data
  113. strA: .asciiz "Original Array:\n"
  114. strB: .asciiz"Second Array:\n"
  115. newline: .asciiz "\n"
  116. space: .asciiz " "
  117. # This is the start of the original array.
  118. Original:
  119. .word 200, 270, 250, 100
  120. .word 205, 230, 105, 235
  121. .word 190, 95, 90, 205
  122. .word 80, 205, 110, 215
  123. # The next statement allocates room for the other array.
  124. # The array takes up 4*16=64 bytes.
  125. #
  126. Second:
  127. .space 64
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement