所以我对MIPS程序集不太熟悉;这段代码运行,但它以“invalid program counter”错误结尾,分支如何扰乱程序计数?
main:
addi $a0, $0, 0xff
jal func1
func1:
addi $sp,$sp,-4
sw $ra,0($sp) # save return address
addi $t1, $0, 3 # if it detects 0xff, loop three times
beq $a0, 0xff, loop1
bnez $t1, func_end
loop1:
subi $t1, $t1, 1
bnez $t1, loop1
func1_end:
lw $ra, 0($sp) # restore previous value of 0x($ra)
addi $sp, $sp, 4
jr $ra
li $v0, 10
syscall