"Comma expected after operand 1" 在 NASM 中定义一系列字节时?
"Comma expected after operand 1" when defining a series of bytes in NASM?
根据 NASM 的文档,下面允许我在标签 Vid
处定义 64,000 个未初始化的字节:
Vid resb 64000
根据后续文档,this 应该允许我将这些字节初始化为 0xFF:
Vid db 64000 dup (FFh)
但是,这会产生错误 error: comma expected after operand 1
。
我也试过:
- 在符号名称后添加冒号
Vid
- 使用
0
或问号作为默认值而不是 FF(尽管 FF 是我的预期值)
- 使用较小的字节数,例如
64
- 调整大写
- 重新排列我的源文件,使该指令出现在不同的部分等。
- 在 64000、dup 和 (FFh) 之间添加逗号 - 这显然不起作用
我在网上找不到任何东西,提示此语法已更改或在某些情况下它不应该工作。
作为重要的背景,我正在编译成一个 bin
文件并且在我的源代码中有 cpu 8086
指令。
将评论转换为答案:DUP
仅在 2.15 版(2020 年 6 月发布)中添加到 NASM。为了与旧版本兼容,请使用 TIMES,例如times 64000 db 0xff
.
根据 NASM 的文档,下面允许我在标签 Vid
处定义 64,000 个未初始化的字节:
Vid resb 64000
根据后续文档,this 应该允许我将这些字节初始化为 0xFF:
Vid db 64000 dup (FFh)
但是,这会产生错误 error: comma expected after operand 1
。
我也试过:
- 在符号名称后添加冒号
Vid
- 使用
0
或问号作为默认值而不是 FF(尽管 FF 是我的预期值) - 使用较小的字节数,例如
64
- 调整大写
- 重新排列我的源文件,使该指令出现在不同的部分等。
- 在 64000、dup 和 (FFh) 之间添加逗号 - 这显然不起作用
我在网上找不到任何东西,提示此语法已更改或在某些情况下它不应该工作。
作为重要的背景,我正在编译成一个 bin
文件并且在我的源代码中有 cpu 8086
指令。
将评论转换为答案:DUP
仅在 2.15 版(2020 年 6 月发布)中添加到 NASM。为了与旧版本兼容,请使用 TIMES,例如times 64000 db 0xff
.