我正在尝试计算数组中的所有字符,但出现了以下错误:
指令在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 发布于 2014-11-08 08:57:09
.globl main并没有定义这个符号,它只是将它标记为全局的。您需要将main:标签添加到适当的位置,在本例中,这可能是第一条指令。
发布于 2015-09-13 23:09:51
您应该更改模拟器设置。模拟器-->设置--> MIPS -->异常处理程序:取消选中此选项“加载异常处理程序”,这样您就可以禁用本机MIPS代码,并且您自己的代码可以正常工作。
发布于 2020-08-25 10:27:13
我是一个完全的MIPS的初学者,但是当我使用QtSPIM的时候,这个错误经常出现。原来是因为我每次都在点击'Reinitialize simulator‘,这导致了这个错误,所以每当你想重新运行一个程序时,只要清除寄存器,就不要重新初始化模拟器。
https://stackoverflow.com/questions/26812502
复制相似问题