我想组装 64-bit
汇编指令到原始机器代码,使用 nasm
. 如果我这样做,我会得到一个错误。
error: instruction not supported in 16-bit mode
输入示例:
mov rax, 0x12345678
命令示例:
$ nasm input.s -o output
默认情况下, nasm
使用bin输出格式 其中假设 16-bit
. 所有其他选项似乎都支持 64-bit
但只在生成完整的执行对象文件时使用,而不是只生成原始机器代码时使用。
有没有一种方法可以使用二进制格式,但在生成原始机器代码的时候使用 64-bit
而不是?
我找到了另一种方法来完成这个任务,使用的是 GNU assembler
但我想知道,如果你能做到同样的事情在 nasm
也是。
添加 BITS 64
到汇编源文件的顶部,这样做的目的是。