出于好奇,我正在学习x86程序集.我目前正在使用基于Linux的操作系统和NASM汇编程序.我很难理解为什么
SECTION .text
global _start
_start:
nop
mov ebx, 25
mov [0xFFF], ebx
;Exit the program
mov eax, 1
mov ebx, 0
int 0x80
Run Code Online (Sandbox Code Playgroud)
会导致分段错误(将ebx寄存器的内容移动到内存位置0xFFF时).我认为在纯asm中构建程序会让我无限制地访问我的进程的虚拟地址空间.这不是这种情况吗?
你会如何在汇编中实现类似堆的东西?
在x86-64中,如果使用以下汇编代码:
MOV RAX, (memory address)
JMP RAX
Run Code Online (Sandbox Code Playgroud)
管道在执行分支之前是否停止(等待MOV完成RAX),还是像条件分支一样刷新管道?