小编Unk*_*own的帖子

Nasm - 符号`printf'导致R_X86_64_PC32重定位溢出

我试图在nasm中创建一个应该显示该字母的简单程序a.然而,它给了我一个Segfault并说:

./a.out: Symbol `printf' causes overflow in R_X86_64_PC32 relocation
Segmentation fault (core dumped)
Run Code Online (Sandbox Code Playgroud)

基本上,我试图将值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
Run Code Online (Sandbox Code Playgroud)

我正在运行Linux x86_64

linux gcc x86-64 nasm segmentation-fault

11
推荐指数
2
解决办法
5462
查看次数

标签 统计

gcc ×1

linux ×1

nasm ×1

segmentation-fault ×1

x86-64 ×1