2

每种处理器的汇编语言有何不同?

如果有人学习 x86 英特尔汇编,如果他将汇编与另一种处理器类型(fx x86-64)一起使用,他是否必须从头开始?

4

3 回答 3

3

嗯,有些概念是相似的。例如,所有处理器体系结构都有用于快速临时存储的寄存器,它们都有一个指令指针,并且几乎所有它们都有一个堆栈。根据我的经验,如果您可以处理 x86(当然还有 amd64,这比添加 32 位更复杂),您将能够很快处理更简单的架构,如 ARM、z80 或 MIPS。

如果您想快速上手,请获取 IDA 的免费版本,或者如果您在 Windows 中,还有 Ollydbg。用 C 写一个小程序,然后反汇编你写的东西。这样你会学到很多东西(这几乎就是我自学的方式)。

还要注意的是,就 x86 而言,有两种主要的汇编语法风格——英特尔和 AT&T。似乎 linux 人群倾向于使用 AT&T 语法,但我个人更喜欢 Intel。

于 2011-07-14T21:06:07.797 回答
2

这实际上取决于特定的汇编语言。32 位和 64 位 x86 处理器之间的区别并不算太差(额外的寄存器等),但是用于 pc 的 64 位处理器和旧翻盖手机处理器之间的区别将大不相同。但总的来说,大多数概念都能很好地翻译。

于 2011-07-14T21:05:45.773 回答
0

它们通常比不同更相似。x86 是您要学习的最后一个指令集,它不是一个很好的指令集,非常丑陋。是的,如果您学习它,其他人真的很容易,但最好先学习一个好的指令集。正如您的问题所暗示的那样,一旦您知道一两个,其他的就是语法问题。msp430 是一个很好的第一个指令集,硬件超级便宜(低于 5 美元)或者只使用模拟器。在主线 binutils 中支持。手臂和拇指是其他很好的学习指令集。同样,硬件很便宜,基于 cortex-m3(只有拇指/拇指 2 没有手臂指令)大约 10 美元,基于手臂/拇指(没有拇指 2)的 40 岁以下。那里还有免费的模拟器,所以你不必购买硬件。

于 2011-07-15T02:19:22.683 回答