I am triying to count all characters in an array and i had the following error:
Instruction references undefined symbol at 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
.globl main
doesn't define the symbol, it just marks it as global if it will ever be defined. You need to add a main:
label to the appropriate place, which in your case would probably be the first instruction.
You should change the simulator Settings. Simulator-->Settings-->MIPS-->Exception Handler: Uncheck this option "Load Exception Handler" this way you disabling the native MIPS code and your own code works.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With