【问题标题】:What is the option for MASM pointer PTR in NASMNASM 中 MASM 指针 PTR 的选项是什么
【发布时间】:2020-12-02 02:27:41
【问题描述】:

在 NASM 环境中运行以下 MASM 命令时出现错误:

MOV BYTE PTR [DI-02H],0FH

它给出一个错误和一个警告消息:

warning: 'PTR' is not a NASM keyword [-w+ptr]
error: symbol 'PTR' not defined

在这里我想知道 MASM 的“PTR”的 NASM 选项是什么。

【问题讨论】:

  • 只需删除 PTR:mov BYTE [DI-02h],0FH
  • 汇编语言是由汇编器、工具定义的,而不是目标(x86),所以你需要为与工具匹配的编程(汇编)语言编写代码。 (或询问该工具是否支持使用不同的编程语言)
  • 你有一堆预先存在的 MASM 代码吗?如果你只修复这样的语法错误,它会组装,但如果你有像mov eax, symbol 这样的代码,它将无法工作。在 NASM 中,这是地址的 mov-immediate;在 MASM 中,这是一种负担。如果你小心翼翼地在 MASM 代码中始终使用mov eax, [symbol],那在 NASM 中意味着同样的事情,所以你可能会没事。如果你没有一堆现有的代码,首先用 NASM 语法编写。
  • also

标签: assembly nasm masm


【解决方案1】:

可以使用有限的 MASM 兼容性来启用

%use masm

指令。除其他功能外,这还启用了类似 MASM 的 PTR 关键字。

详情请参阅manual

【讨论】:

    猜你喜欢
    • 2018-04-09
    • 1970-01-01
    • 2021-05-11
    • 2011-07-09
    • 2019-09-28
    • 2022-01-08
    • 2021-06-25
    相关资源
    最近更新 更多