NASM 中的等效 MASM .const 部分

equivalent MASM .const section in NASM

下面 MASM 代码的 NASM 等价物是什么?

; Simple lookup table (.const section data is read-only)
      .const
const_array dword 0, 1, 1, 2, 3, 5, 8, 13, 21

因为.const MASM指令表示一个只读段,你必须使用NASM等效的section .rdata1 创建一个可读但不可写的 segment/section。

您可以使用 DD 指令将 DWORD 放在任何地方;请参阅手册的 Section 3.2.1

最终结果可能如下所示:

section .rdata
  const_array:   dd 0, 1, 1, 2, 3, 5, 8, 13, 21

在 NASM.

中始终建议在标签名称后添加 :

当行中的第一个标记未被识别为指令助记符时 NASM 将假定它是一个标签。但始终使用 : 来明确这一点是一个好习惯。


脚注 1:

Windows 使用 .rdata。其他一些操作系统,包括 Linux 使用 section .rodata 用于只读不可执行数据。