我很好奇如果我把db 0x41这个.text部分放在它通常所属的地方,而不是放在.data它通常所属的地方,会发生什么。它会出现段错误,但到底为什么呢?
下面的代码是在 Mint 19.1 中使用 和 进行编译、链接和执行nasm的ld。
无段错误:
global _start
section .data
db 0x41
section .text
_start:
mov rax, 60 ; Exit(0) syscall
xor rdi, rdi
syscall
Run Code Online (Sandbox Code Playgroud)
段错误:
global _start
section .text
_start:
db 0x41
mov rax, 60 ; Exit(0) syscall
xor rdi, rdi
syscall
Run Code Online (Sandbox Code Playgroud)
我使用以下命令来组装、链接和运行它:
global _start
section .data
db 0x41
section .text
_start:
mov rax, 60 ; Exit(0) syscall
xor rdi, rdi
syscall
Run Code Online (Sandbox Code Playgroud)