#assembly #matrix #mips
#сборка #матрица #mips
Вопрос:
.data
matrixA: .word 1,2,3
.word 4,5,6
.word 7,8,9
matrixX: .word 1
.word 2
.word 3
matrixB: .word 0
.word 0
.word 0
.text
main:
la $s0, matrixA
la $s1, matrixX
la $s2, matrixB
addi $v1, $zero, 0
addi $t2, $zero, 0
addi $t3, $zero, 0
for:
beq $t3, 3, IncreaseCoindex
mul $t6, $t3, 4
add $t5, $s1, $t6
lw $t4, ($t5)
mul $t7, $t2, 3
add $t0, $t7, $t3
mul $t0, $t0, 4
add $t0, $t0, $s0
lw $t1, ($t0)
mul $t1, $t1, $t4
add $v1, $v1, $t1
addi $t3, $t3, 1
IncreaseCoindex:
mul $t6, $t2, 4
add $t6, $s2, $t6
sw $v1, ($t6)
lw $a0, ($t6)
li $v0, 1
syscall
jal printNewLine
addi $t2, $t2, 1
addi $t3, $zero, 0
addi $v1, $zero, 0
blt $t2, 3, for
exit:
li $v0, 10
syscall
printNewLine:
li $v0, 4
la $a0, printNewLine
syscall
jr $ra
Ошибка в строке 50: исключение во время выполнения в 0x004000a4: не удается прочитать непосредственно из текстового сегмента! 0x00400098
Go: выполнение завершилось с ошибками.
Что мне делать …..?
Вопрос в том, чтобы вычислить Ax = b (A: 3×3, x: 3×1)
Комментарии:
1. Вы должны были, по крайней мере, указать, к какой инструкции относится сообщение об ошибке. В любом случае, вы, похоже, не экспортируете свою
main
этикетку. То есть передmain:
вами должна быть строка, которая гласит:.globl main
2. Если вы решили свою проблему, пожалуйста, опубликуйте ответ здесь. Это помогло бы будущим читателям…