masm汇编器在编写系统软件时有哪些限制

What are the limitations of masm assembler when writing system software

编写操作系统等系统软件时,MASM汇编器有哪些限制? 提前致谢。

None如果不计算写出来的时间

  1. 考虑到您的其他问题,我建议您下载并浏览(几次)Combined Volume Set of Intel® 64 and IA-32 Architectures Software Developer’s Manuals as it defines the dictionary of the assembly language and what the assembly language is about (unless you want to target RISC processors like ARM,其中指令集和汇编语言完全不同)

  2. 选择汇编器时需要考虑以下几点:

    • 避免vendor lock-in,这样在编写代码 10 年后,您不必丢弃代码或完全重写代码,因为汇编器供应商关闭了它的业务(跨平台”和“开源”似乎是这里的魔法词)
    • 是否有 IDE 代码导航和重构支持可用于此语言?
    • 是否有任何可用于该语言的可重复使用的库?
    • 这种语言的语法是容易 read/write 还是只是一堆难以阅读和破译的符号?
    • 是否有相当大的程序员社区愿意提供帮助?
  3. 有完整的可用汇编语言编写的操作系统,可以作为示例。

    MenuetOS is almost entirely written with port of Tomasz Grysztar's Flat Assembler (FASM)


MASM 是否适合您的需求取决于您的目标。

它有友好的语法,有一些 IDEs,并且由于它的年代久远,可能有相当多的现成可重用代码可用(几十年前写的),但你永远无法自己扩展它,你将无法将它移植到另一个平台,因为它是封闭源代码,而且在汇编语言战士社区中,你们中不会有很多人。

如果您刚刚开始学习,请选择您可用的任何语言和工具并开始编码。

我个人不想使用 MASM 编写操作系统。
从许可证中我们了解到:

你不能用 MASM32 项目做什么。

  1. MASM32 项目不是贸易或商业项目。它不能被购买或出售。
  2. MASM32 项目不能被重新许可或从属于任何其他形式的许可。
  3. None 其组件或源代码是可再分发的。
  4. 您不能使用 MASM32 项目为非 Microsoft 操作系统编写软件。
  5. 您不能使用 MASM32 项目编写任何形式的非法软件。
  6. 该项目未授权在您的软件中使用 Microsoft 商标或声称您的软件已通过 Microsoft 认证。

谁可以使用 MASM32 项目?

许可证适用于任何个人、组织、教育机构、政府部门和任何公司and/or公司,供其personal/internal使用,它可用于开发和分发或销售 Windows 操作系统的软件。

为什么 MASM32 项目以这种方式授权?

MASM32 项目是程序员为程序员编写的真正免费软件,因此他们可以实现Windows操作系统的全部功能,而不受任何附加条件的约束或外部利益。该项目旨在作为支持技术扩展对 学习和编写用于 Microsoft 操作系统的 Microsoft 汇编器 感兴趣的程序员的能力和范围。

排除开源项目和软件。

MASM32 项目不能用于创建开源软件或任何其他需要 MASM32 项目用户放弃他们根据 MA​​SM32 许可获得的权利的任何形式许可的项目。特别是 MASM32 许可证完全 排除了根据 GNU 组织发布的 GPL 许可证 and/or 变体 获得许可的项目。