<分区>
我正在尝试在 nasm 中创建一个应该显示字母 a
的简单程序。然而,它给了我一个段错误并说:
./a.out: Symbol `printf' causes overflow in R_X86_64_PC32 relocation
Segmentation fault (core dumped)
基本上,我试图将值 0x61
(字母 a 的十六进制)移动到内存地址 1234,然后将其作为参数传递给 printf。这是我的确切代码:
extern printf
section .text
global main
main:
push rbp
mov rax,0
mov qword [1234], 0x61 ; move 0x61 into address 1234
mov rdi, qword [1234] ; mov address 1234 into rdi
call printf ; should print the letter a
pop rbp
mov rax,0
ret
我正在运行 Linux x86_64