这个错误通常出现在AT&T汇编语法中,因为AT&T语法中在使用标签作为地址时需要在前面加上$符号,例如:
jmp $label
但是在使用“.quad”指令时,如果直接使用$label作为操作数会导致未定义引用错误,因为编译器无法找到这个标签的定义位置。
解决方法是在使用“.quad”指令时,不要使用$符号,直接使用标签名称即可,例如:
.globl main main: movl $60, %eax xorl %ebx, %ebx jmp label ... .quad label label: ...
在上面的例子中,我们定义了一个名为label的标签,并在使用“.quad”指令时直接使用了它的名称。这样就可以避免未定义引用错误了。
下一篇:AT&T语法中的指令。