.data
string1:.asciiz "Enter number\n"
matrix:.space 100
i: .word 0
k: .word 0
.text
main:
lw $t1,i
lw $t2,k
la $s0,matrix
jal Build_matrix
j exit
Build_matrix:
li $t3,25
li $t4,0
li $a1,0
Scanning:
bge $t1,$t3,Return #if i>=25,stop
li $v0,4
la $a0,string1
syscall
add $t4,$t2,$t2 #2j
add $t4,$t4,$t4 #4j
add $a1,$s0,$t4
li $v0,5
syscall
sw $v0,0($a1)
addi $t1,$t1,1
addi $t2,$t2,1
j Scanning
Return:
jr $ra
#**** End of Build_matrix method ****
exit:
这是从用户输入25个数字(要求数字25次)并将它们存储在内存中的代码。没有编译时错误。但是在运行时,此消息 - “异常5 [存储中的地址错误] ]发生并忽略“每次显示输入数字后显示?我的错误是什么.....谢谢
答案 0 :(得分:1)
您面临的问题是矩阵不是字对齐的,这是sw
指令所需要的。
您必须在矩阵标签后添加.align 2
指令:
matrix:
.align 2 # ensure matrix is properly aligned
.space 100