段错误简单nasm程序
Segmentation fault simple nasm program
我刚开始学习 linux 64 位汇编,并试图真正理解 lea 和 mov 之间的区别。
但是在创建测试文件时,我遇到了一个分段错误,我只是不明白为什么。错误出现在示例代码中的mov r10,[rax]
。但是,当我将 mov r10,[rax]
的位置更改为 lea r11,[rax]
时,我在执行 lea 时遇到了错误。
我的程序:
global _start
section .text
_start:
mov rax,16
lea r11,[rax]
mov r10,[rax]
mov r9,rax
mov rax,60
xor edi,edi
syscall
你期望内存位置 16(0x10) 是什么?
您的密码是
mov rax,16
mov r10,[rax]
这意味着您尝试从内存地址 RAX
加载 64 位值到 R10
。地址 16 通常不会映射到您的程序中 space.
我刚开始学习 linux 64 位汇编,并试图真正理解 lea 和 mov 之间的区别。
但是在创建测试文件时,我遇到了一个分段错误,我只是不明白为什么。错误出现在示例代码中的mov r10,[rax]
。但是,当我将 mov r10,[rax]
的位置更改为 lea r11,[rax]
时,我在执行 lea 时遇到了错误。
我的程序:
global _start
section .text
_start:
mov rax,16
lea r11,[rax]
mov r10,[rax]
mov r9,rax
mov rax,60
xor edi,edi
syscall
你期望内存位置 16(0x10) 是什么?
您的密码是
mov rax,16
mov r10,[rax]
这意味着您尝试从内存地址 RAX
加载 64 位值到 R10
。地址 16 通常不会映射到您的程序中 space.