加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows – masm32和masm之间的区别?

发布时间:2020-12-14 01:51:56 所属栏目:Windows 来源:网络整理
导读:我正在尝试学习 Windows的程序集,并看到有2个汇编程序: masm:https://www.microsoft.com/downloads/en/details.aspx?FamilyID=7a1c9da0-0510-44a2-b042-7ef370530c64 masm32:http://masm32.com/index.htm 这些是等价的吗?我应该选择哪一个学习Windows的
我正在尝试学习 Windows的程序集,并看到有2个汇编程序:

masm:https://www.microsoft.com/downloads/en/details.aspx?FamilyID=7a1c9da0-0510-44a2-b042-7ef370530c64

masm32:http://masm32.com/index.htm

这些是等价的吗?我应该选择哪一个学习Windows的组装?

解决方法

它既是MASM(显然),只是不同的版本.我通常使用官方(MS)链接.
MASM现在也是Windows SDK的一部分 – 如果你安装它,它在bin目录中包含ML.exe.

如果您只是使用它来学习汇编语言,那么使用的MASM版本并没有多大区别.较新版本的MASM添加了对64位(ML64.exe)和更新指令的支持,因为它们被添加到x86指令集,但就是这样.不同汇编者之间的主要区别在于不同的方言. x86汇编语言有三种主要方言:MASM语法,NASM语法和Unix风格的语法(以前也有Borland TASM,但现在已经非常死了). MASM,NASM和YASM都使用相同的指令和寄存器名称,但有一些略有不同的约定(dword ptr [blah]与dword [blah]等)和完全不同的宏语言. MASM还有一些更高级的构造,如.if / .endif,invoke等,在其他Assemblers中不存在.无论这种优势与否都是品味问题,我个人更喜欢NASM风格的语法,因为它更经常,我发现宏预处理器使用起来更方便,但这是一个品味问题.

这是另一回事.它使用与英特尔手册中给出的完全不同的语法和指令名称.它是大多数Unix变体(以及来自该环境的编译器,例如GCC)的默认设置,但在该环境之外基本未使用.当前版本的GNU也支持Intel语法,这使得大多数语法差异消失了,但一般来说主要是作为编译器的后端汇编程序,而不是一个完全成熟的宏汇编程序,所以它仍然具有非常有限的功能集与MASM或NASM / YASM相比.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读