首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >NASM、TASM和MASM的差异

NASM、TASM和MASM的差异
EN

Stack Overflow用户
提问于 2020-05-17 19:41:10
回答 1查看 3.8K关注 0票数 0

有人能解释一下masm、tasm和nasm之间的区别吗?为什么我不能在linux上运行tasm代码?它们是不同的语言吗?我认为汇编语言对于所有系统都是独一无二的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-17 22:17:12

TASM、MASM和NASM是x86汇编程序。

Borland (TASM)和Microsoft Macro Assembler (MASM)是基于DOS/Windows的,Netwide汇编程序(NASM)也适用于其他平台。TASM产生16位/32位输出,MASM和NASM也产生64位输出.

所有这些汇编程序都以x86指令集作为输入。但是,这并不意味着汇编程序源文件是相同的和兼容的。

指令语法

汇编程序希望使用Intel指令集文档中使用的原始语法-- Intel语法--或者AT&T Bell实验室开发的所谓AT&T语法。AT&T使用mov src, dest,英特尔使用mov dest, src,还有其他不同之处。

Windows汇编程序更喜欢Intel语法(TASM,MASM),大多数Linux/UNIX汇编程序使用AT&T。NASM使用Intel语法的一个变体。

汇编程序特定语法

汇编程序有自己的语法,用于处理影响组装过程、宏和注释的指令。这些通常因汇编程序而异。

兼容性

TASM可以在"MASM模式“下组装MASM源。

NASM可以在"TASM模式“下组装TASM代码。因此,从理论上讲,您可以使用TASM代码并使用该模式在Linux上使用NASM组装它们。当然,代码可能仍然需要调整。如果代码有操作系统依赖项,这将需要您的注意,也需要您从Windows迁移到Linux。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61857760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档