我试图对数组中的所有字符进行计数,但出现以下错误:

指令引用了0x00400014处的 undefined symbol
[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并 undefined symbol ,只是将其定义为全局符号。您需要在适当的位置添加main:标签,在您的情况下,这可能是第一条指令。

关于assembly - 指令引用了MIPS/QTSPIM中的未定义错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26812502/

10-16 03:22