Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .align 2
- .text
- .globl main
- main:
- addi $t2, $0, 4 #;store 4
- jal Transpose #;transpose matrix
- li $v0, 4 #; print original
- la $a0, strA
- syscall
- la $a1, Original
- move $t0, $0
- addi $t0, $0, 1
- jal PrintMatrix
- li $v0, 4 #; print original
- la $a0, strB
- syscall
- la $a1, Second
- move $t0, $0
- addi $t0, $0, 1
- jal PrintMatrix
- li $v0, 10 #;end program
- syscall
- Transpose:
- la $a1, Original
- la $a2, Second
- lw $t5, ($a1)
- sw $t5, ($a2)
- lw $t5, 16($a1)
- sw $t5, 4($a2)
- lw $t5, 32($a1)
- sw $t5, 8($a2)
- lw $t5, 48($a1)
- sw $t5, 12($a2)
- lw $t5, 4($a1)
- sw $t5, 16($a2)
- lw $t5, 20($a1)
- sw $t5, 20($a2)
- lw $t5, 36($a1)
- sw $t5, 24($a2)
- lw $t5, 52($a1)
- sw $t5, 28($a2)
- lw $t5, 8($a1)
- sw $t5, 32($a2)
- lw $t5, 24($a1)
- sw $t5, 36($a2)
- lw $t5, 40($a1)
- sw $t5, 40($a2)
- lw $t5, 56($a1)
- sw $t5, 44($a2)
- lw $t5, 12($a1)
- sw $t5, 48($a2)
- lw $t5, 28($a1)
- sw $t5, 52($a2)
- lw $t5, 44($a1)
- sw $t5, 56($a2)
- lw $t5, 60($a1)
- sw $t5, 60($a2)
- jr $ra #;return address
- PrintMatrix:
- bgt $t0, 16, returna
- li $v0, 1 #; print number
- lw $a0, ($a1)
- syscall
- div $t0, $t2 #;check if end of line
- mfhi $t1
- beq $t1, $0, newl
- bne $t1, $0, spacel
- newl:
- li $v0, 4 #;print newline
- la $a0, newline
- syscall
- j endloop
- spacel:
- li $v0, 4 #;print space
- la $a0, space
- syscall
- j endloop
- endloop:
- addi $a1, $a1, 4
- addi $t0, $t0, 1
- j PrintMatrix
- returna:
- jr $ra
- .data
- strA: .asciiz "Original Array:\n"
- strB: .asciiz"Second Array:\n"
- newline: .asciiz "\n"
- space: .asciiz " "
- # This is the start of the original array.
- Original:
- .word 200, 270, 250, 100
- .word 205, 230, 105, 235
- .word 190, 95, 90, 205
- .word 80, 205, 110, 215
- # The next statement allocates room for the other array.
- # The array takes up 4*16=64 bytes.
- #
- Second:
- .space 64
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement