.text
main: #Main function to be run
la $a0, prompt
li $v0, 4
syscall
la $a0, n0
li $a1, 8
li $v0, 8
syscall
move $t0, $v0
la $a0, n1
li $a1, 8
li $v0, 8
syscall
move $t1, $v0
la $a0, n2
li $a1, 8
li $v0, 8
syscall
move $t2, $v0
la $a0, n3
li $a1, 8
li $v0, 8
syscall
move $t3, $v0
la $a0, n4
li $a1, 8
li $v0, 8
syscall
move $t4, $v0
#Outputs
la $a0, ($t0)
li $v0, 8
syscall
la $a0, ($t1)
li $v0, 8
syscall
la $a0, ($t2)
li $v0, 8
syscall
la $a0, ($t3)
li $v0, 4
syscall
la $a0, ($t4)
li $v0, 4
syscall
li $v0, 10
syscall
.data
prompt: .asciiz "Enter a series of 5 formulae:\n" #The prompt to ask the user to type 5 strings
n0: .space 20
n1: .space 20
n2: .space 20
n3: .space 20
n4: .space 20
发布于 2020-09-30 06:40:42
下面是要做的事情:
找出汇编代码的哪一行对应于0x00400090
-或异常的地址。这是得到错误的特定指令。然后查找该指令的输入不正确(即,在这里,具有值0x00000008
,并修复代码,使寄存器具有正确的地址)。
您可以在MARS模拟器中执行此操作。当MARS模拟器报告异常时,请查看异常指令,并检查该点的寄存器值。*如果需要,您还可以在异常指令上或之前设置断点,并重新运行它,以便在异常之前看到寄存器状态的演变。
https://stackoverflow.com/questions/64127063
复制相似问题