【发布时间】:2015-06-29 07:17:57
【问题描述】:
Intel manual 说:
-
syscall指令对兼容模式(32 位)无效 -
popa对 64 位模式无效
那么为什么 NASM 是有原因的:
- 如果我将
popa与-f elf64一起使用,则会出现编译错误instruction not supported in 64-bit mode
如果我将 - 不会给出编译错误。如果我运行可执行文件,我会按预期得到
Illegal instruction (core dumped)。
syscall 与-f elf32 一起使用,为什么要区别对待这两种情况?
在 Ubuntu 14.04 上使用 NASM 版本 2.10.09 进行测试(应该与操作系统无关)。
【问题讨论】: