用nasm将64位指令组装成原始机器代码。

问题描述 投票:3回答:1

我想组装 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 也是。

assembly x86 x86-64 nasm
1个回答
3
投票

添加 BITS 64 到汇编源文件的顶部,这样做的目的是。

© www.soinside.com 2019 - 2024. All rights reserved.