【发布时间】:2011-01-01 00:21:55
【问题描述】:
我正在学习汇编语言。我从 Paul A. Carter 的 PC Assembly Language 开始,它使用 NASM(The Netwide Assembler)。然后在中间我切换并开始阅读使用 MASM 的Introduction to 80×86 Assembly Language and Computer Architecture。
在我曾经写过的 NASM 中,用于初始化一个字节
db 110101b
在我正在使用的 MASM 中
字节 110101b
我正在看书。由于这些是汇编器指令,它们对于每个汇编器都是不同的。正确的? 这些汇编程序开发人员不遵循这些指令的标准吗?因为,他们知道助记符是特定于 CPU 的。因此,用汇编语言学习和编码是一件很痛苦的事情。
现在,如果他们遵循不同的指令,如果您更改汇编程序或切换操作系统(如果 MASM 开发人员使用 linux,他将陷入困境),这将更加痛苦。
我的困惑是我应该熟悉 NASM 还是 MASM?我是 Windows 的粉丝,但我可能(将来)也必须在 Linux 上工作。
每本书的标题都应该是“_________Assembly Language using __________ Assembler”
【问题讨论】:
-
出于好奇,您将使用汇编语言做什么?您是打算为硬件制造商工作,还是为了更广泛的教育目的而学习它? (我对汇编语言及其相关职业知之甚少)
-
是的,我是一名电子专家,并计划加入一家硬件制造商公司。我也是一名高级程序员,想了解事情的运作方式。所以,它对我都有帮助:)
-
@claws:鉴于您的评论和背景,您可能想查看 GNU 汇编器。我怀疑随着时间的推移,你会处理更多的 x86 处理器......我使用 GNU 汇编器来处理 ARM、MIPS、Nios2、Sparc、x86 等。
-
谢谢你,理查德。我肯定会熟悉 GAS,但我使用的书籍要么使用 NASM,要么使用 MASM。所以,在我完成学习之前,我至少需要坚持其中任何一个。如果您知道任何遵循 GAS 的书。请提出建议。
-
grc.com/smgassembly.htm有一些资源链接