有多少种汇编语言?

7

我在维基百科上阅读了关于程序集列表的文章。

http://en.wikipedia.org/wiki/List_of_assemblers

原来有很多种汇编语言.. 例如,如果您学习Yasm汇编语言,那么阅读TCCASM代码会很困难吗? 它是否完全不同于所有其他汇编语言? 我想学习这种语言,但我不知道应该选择哪种.. 如果您可以推荐一些涵盖通用x86汇编的初学者编程书籍,我将不胜感激。

3
首选不应该学习x86汇编语言,这不是一个好的入门汇编语言。可以先尝试学习msp430、arm、thumb、avr等多种指令集中的一种或两种,然后再考虑学习x86。每个指令集都有对应的汇编语言,而且可能会有一个以上的汇编器(解析汇编语言并生成机器码的程序),有时语法或指令可能会有所不同。一旦学会了一种好的指令集,第二种就会更容易,第三种以及之后的学习也比学习多种高级语言容易得多。 - old_timer
2个回答

7
您不应混淆以下内容:
- 汇编语言(抽象概念,具有不同的实现) - 汇编器(一种程序,一种实现该语言的编译器(如果您愿意)) - 语法(又是一个实现特定的细节;比较x86平台的AT&T和Intel语法) - 指令集(对于不同的CPU不同)
汇编语言的总体思想是相同的。但是它们的实现方式却是多种多样的(例如MASM,TASM,NASM,(G)AS等等)。它们之间的区别在于支持哪些CPU以及哪些指令(子)集,支持哪些功能(例如表达式,宏,结构化编程支持,对象/二进制文件格式)以及所有这些外观如何(语法,助记符,指令,注释)。
如果您知道如何在特定平台上使用一种汇编器,那么学习另一种汇编器就不应该很困难。同样,如果您知道如何为一个平台编写汇编代码,那么学习为另一个平台编写汇编代码也不是什么大问题。当然,前提是您至少了解一种汇编器和一种指令集。

0

我会建议从Z80开始学起,以了解寄存器、程序计数器、堆栈、标志、助记符等基本概念。它非常简洁实用,不会太过复杂,但却拥有你编写处理器所需的全部功能。当然,这是有偏见的,因为这是我第一次接触处理器 :) 但其他大多数处理器更加复杂,具有更多的可能性和功能,但可能会在刚开始时让你感到困惑。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接