【发布时间】:2011-07-14 20:58:02
【问题描述】:
每种处理器的汇编语言有何不同?
如果有人学习 x86 英特尔汇编,如果他将汇编与另一种处理器类型 (fx x86-64) 一起使用,他是否必须完全从头开始?
【问题讨论】:
标签: assembly processors
每种处理器的汇编语言有何不同?
如果有人学习 x86 英特尔汇编,如果他将汇编与另一种处理器类型 (fx x86-64) 一起使用,他是否必须完全从头开始?
【问题讨论】:
标签: assembly processors
嗯,有些概念是相似的。例如,所有处理器体系结构都有用于快速临时存储的寄存器,它们都有一个指令指针,几乎所有它们都有一个堆栈。 根据我的经验,如果您可以处理 x86(当然还有 amd64,这比添加 32 位更复杂),您将能够非常快速地处理更简单的架构,例如 ARM、z80 或 MIPS。
如果您想快速上手,请获取 IDA 的免费版本,或者如果您在 Windows 中,还有 Ollydbg。 用 C 写一个小程序,然后反汇编你写的东西。这样你会学到很多东西(这几乎就是我自学的方法)。
还要注意,就 x86 而言,有两种主要的汇编语法风格 - Intel 和 AT&T。似乎 linux 人群倾向于使用 AT&T 语法,但我个人更喜欢 Intel。
【讨论】:
这实际上取决于特定的汇编语言。 32 位和 64 位 x86 处理器之间的区别并不算太差(额外的寄存器等),但是用于 pc 的 64 位处理器和旧翻盖手机处理器之间的区别将大不相同。但总的来说,大多数概念都能很好地翻译。
【讨论】:
它们通常比不同更相似。 x86 是您要学习的最后一个指令集,它不是一个很好的指令集,非常丑陋。是的,如果您学习它,其他人真的很容易,但最好先学习一个好的指令集。正如您的问题所暗示的那样,一旦您知道一两个,其他的就是语法问题。 msp430 是一个很好的第一个指令集,硬件超级便宜(低于 5 美元)或者只使用模拟器。在主线 binutils 中支持。手臂和拇指是其他很好的学习指令集。同样,硬件很便宜,基于 cortex-m3(只有拇指/拇指 2,没有手臂指令)大约 10 美元,基于手臂/拇指(没有拇指 2)的 40 岁以下。还有免费的模拟器,所以你不必购买硬件。
【讨论】: