Matrix 乘法和组合矩阵

Matrix 乘法和组合矩阵,matrix,mips,mars-simulator,Matrix,Mips,Mars Simulator,嗨,我正在尝试在mips汇编中编写代码。代码的目的是将两个矩阵相乘。将要求用户输入两个矩阵参数,程序将组合它们,然后要求用户在矩阵中输入值。最后,程序将打印矩阵。例如:用户输入3 x 2,2 x 7程序将它们合并得到3 x 7,用户输入21个值,然后打印矩阵 .文本 开始: 李$V04 la $a0 msg1 syscall li $v0 8 la $a0

嗨,我正在尝试在mips汇编中编写代码。代码的目的是将两个矩阵相乘。将要求用户输入两个矩阵参数,程序将组合它们,然后要求用户在矩阵中输入值。最后,程序将打印矩阵。例如:用户输入3 x 2,2 x 7程序将它们合并得到3 x 7,用户输入21个值,然后打印矩阵

.文本 开始: 李$V04

            la              $a0  msg1

            syscall

            li    $v0 8

            la    $a0 matrix1

            li    $a1 3

            syscall

            li              $v0  4

            la              $a0  msg2

            syscall

            li    $v0 8

            la    $a0 matrix2

            li    $a1 3

            syscall

            li              $s0 2

    lb      $t0, matrix1($s0)       
            lb      $t1, matrix2($0)
    beq             $t1 $t0  values        


            li              $v0  4

            la              $a0  msg5

            syscall   
出口:李$V010

            syscall              
价值:磅$t0,矩阵2($s0) sb$t0$X1($s0)

循环:beq$s1$s0打印矩阵

            li             $v0 5

            syscall

            sb             $v0  matrix_values($t2)

            addi           $s1 $s1 1

            addi           $t2 $t2 1

            j loop
打印矩阵:li$v0 4

            la             $a0 msg4

            syscall

            li             $v0 4

            la             $a0 matrix1

            syscall
打印:beq$s2$s0退出

            li            $v0 1

            lb            $a0 matrix_values($t3)

            syscall

            li             $v0 4

            la             $a0 spaces

            syscall

            addi           $s2 $s2 1

            addi           $t4 $t4 1

            bne            $t0 $t4 print

            li             $v0 4

            la             $a0 newline

            syscall

            li             $t4 0

            j print
.数据

msg1:.asciiz“请输入第一个矩阵参数”

msg2:.asciiz“请输入第二个矩阵参数”

msg3:.asciiz“请输入矩阵值”

msg4:.asciiz“结果是”

msg5:.asciiz“错误”

空格:.asciiz“”

换行符:.asciiz“\n”

矩阵1:.空间3

矩阵2:.空间3

矩阵值:。字节

.对齐0

            li            $v0 1

            lb            $a0 matrix_values($t3)

            syscall

            li             $v0 4

            la             $a0 spaces

            syscall

            addi           $s2 $s2 1

            addi           $t4 $t4 1

            bne            $t0 $t4 print

            li             $v0 4

            la             $a0 newline

            syscall

            li             $t4 0

            j print