汇编语言 - 不止一种类型?

时间:2010-08-19 23:16:33

标签: assembly

我在几周内开始上大学(软件工程学位)并且知道我将在第一年学习的其中一个模块是“建筑学基础”或类似的东西;基本上它正在学习用'汇编'编程。

我想做一些背景学习,所以我已经做好了准备(我在其他一些单元上做了同样的事情),但不知道是否有多种“汇编语言”。那里有多少?它是每个制造商一个,32位和64位语言,还是只有一个标准?

如果有多种类型,在大学阶段最受欢迎或可能会被教授的是什么?

3 个答案:

答案 0 :(得分:27)

有许多种类的汇编语言。目前最流行的是ARM,MIPS和x86。 ARM用于许多手机和许多嵌入式系统。 MIPS在IBM CPU上非常流行,可以在Mac,一些视频游戏机等系统上找到,而且我确信我会丢失一些。 x86汇编程序用于Intel PC。每种风味都有不同的版本,从16位到64位指令跨越gammut。关于装配的事情是旧的架构往往会死,新的架构会出现,但RISC风格系统所做的基本事情大多是相同的。这只是学习系统之间助记符的问题。 Move,Mov,Load等都加载了一个带有值的寄存器。它就像任何其他语言一样。一旦你学会了它,很容易找到新的。您可能遇到的一些较旧版本是Z80,68000,6502和6510 - 取决于您想要返回的机器的返回距离。

希望有所帮助。

答案 1 :(得分:8)

  

但不知道是否有多种“汇编语言”

相同CPU的不同汇编程序(例如Gnu和Microsoft)可能具有不同的汇编语言语法;但差别很小,因为它们都是针对相同的CPU,并且在汇编指令和CPU操作码之间存在一对一的映射(如果忽略宏)。

不同类型的CPU之间存在较大差异。

有时不同的CPU支持相同的操作码(因此可以被相同的汇编程序作为目标),因为它们旨在通过执行相同的机器语言来相互兼容或相互竞争。

但有时他们会有所不同:见List of Instruction Set Architectures

答案 2 :(得分:1)

通常:

  • 每种不同类型的CPU至少必须有一种完全不同的汇编语言(因为汇编语言与机器代码直接相关)。

  • 对于每种汇编语言,可能有两种或两种以上的汇编语言(例如,“ Intel语法”与“ AT&T语法”)。

  • 每种语言可能都有许多方言,指令的语法略有不同,完全不同的预处理器和完全不同的指令。

如果(使用随机数抽出)假设有50种不同类型的CPU,每个CPU平均使用1.5个类别,每个类别平均使用2种方言;然后就可以使用150种不同的汇编语言。