Я имею дело с проектом для школы, который включает в себя MIPS и матрицы. По сути, мне нужно написать программу, которая, учитывая N-параметр на входе (и это должен быть размер моей квадратной матрицы NxN) и все элементы внутри (опять же, вставленные пользователем), должна вычислить скалярное произведение из этих двух матриц и поместите результат в третью.
Я впервые пришел к этому коду, который выполняет скалярное произведение, но после двух статических матриц. Не по вводу. Две вещи. Как я должен изменить его, чтобы обе матрицы были вставлены пользователем (также для размера N) и, в основном, была ли моя инициализация матрицы правильной? Я не делал такой проход "[(i * num_columns + j)*4] и мне интересно, что то, что я получаю, является вопросом чистой удачи, а не рационализации. Заранее спасибо всем, кто хотел бы мне помочь, и извините за любую лингвистическую ошибку.
.data
v1: .word 1,2,3,4
.word 5,6,7,8
.word 9,10,11,12
v2: .word 10,20,30,40
.word 10,10,10,10
.word 10,10,10,10
v3: .word 0:12
c: .word 4
space: .asciiz "\n"
.text
main:
li $t0, 0
li $t2, 12
la $t9, c
li $t8, 0
loop:
lw $t3, v1($t0)
lw $t4, v2($t0)
mul $t3, $t3, $t4
addi $t2, $t2, -1
li $v0, 1
move $a0, $t3
syscall
li $v0, 4
la $a0, space
syscall
sw $t3, v3($t0)
addi $t0, $t0, 4
addi $t8, $t8, 1
bne $t2, $zero, loop
li $v0, 10
syscall