我正在试图计算数组中的所有字符,并且出现以下错误:
指令引用0x00400014处的未定义符号 [0x00400014] 0x0c000000 jal 0x00000000 [main]; 188:jal main
.data
string: .asciiz "nice work..."
.text
.globl main
lw $a0,string
jal strlength
li $v0, 10
syscall
# METHOD STRLENGTH
# Receives as first parameter the direction of the first character of string.
# Returns the length of the string.
strlength: li $t0, 0 #numero de caracteres
lb $t4,string($t0) #recorremos la cadena
beqz $t4, fin #si el caracter es igual a cero vamos a fin
addi $t0,$t0, 1
j strlength
move $a0,$t0 #imprimimos numero de caracteres
li $v0, 1
syscall
jr $ra
答案 0 :(得分:7)
.globl main
没有定义符号,只是将其标记为全局符号。您需要在适当的位置添加main:
标签,在您的情况下可能是第一条指令。
答案 1 :(得分:4)
您应该更改模拟器设置。模拟器 - >设置 - > MIPS - >异常处理程序:取消选中此选项"加载异常处理程序"通过这种方式,您可以禁用本机MIPS代码并使用自己的代码。
答案 2 :(得分:0)
我是MIPS的完整入门者,但是当我使用QtSPIM时,此错误弹出很多。原来是因为我每次都单击“重新初始化模拟器”,并且导致了错误。因此,每当要重新运行程序时,只要清除寄存器,就不要重新初始化模拟器。