乘法和组合矩阵

时间:2017-06-20 13:34:10

标签: matrix mips mars-simulator

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

的.text 开始:                 li $ v0 4

            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   

退出:li $ v0 10

            syscall              

值:lb $ t0,matrix2($ s0)                 sb $ t0 matrix1($ s0)

            lb      $t1, matrix1($0)

            li              $v0  4

            la              $a0  msg3

            syscall 

            mult           $t0 $t1                                                                                                                                                                            
            mflo           $s0

循环:beq $ s1 $ s0 print_matrix

            li             $v0 5

            syscall

            sb             $v0  matrix_values($t2)

            addi           $s1 $s1 1

            addi           $t2 $t2 1

            j loop

print_matrix:li $ v0 4

            la             $a0 msg4

            syscall

            li             $v0 4

            la             $a0 matrix1

            syscall

print:beq $ s2 $ s0 exit

            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"

matrix1:.space 3

matrix2:。Space 3

matrix_values:.byte

.align 0

0 个答案:

没有答案