2010-09-15 71 views
2
0x042444FF; /* inc dword ptr [esp+4] */ 

0x042444FF是机器码,而inc dword ptr [esp+4]是汇编代码,我知道 机器码不是跨平台的,因为它取决于很多因素。汇编代码是否跨平台?

汇编代码如何,它取决于CPU?

回答

6

汇编代码不是跨平台的。

通常机器指令和汇编指令之间存在非常直接的映射关系,因此汇编代码依赖于架构。

Wikipedia来自:

汇编语言是低级编程语言,用于计算机,微处理器,微控制器,和其它集成电路。它实现了编程特定CPU架构所需的二进制机器代码和其他常量的符号表示。此表示通常由硬件制造商定义,并基于符号化处理步骤(指令),处理器寄存器,存储器位置和其他语言功能的助记符。 汇编语言因此特定于某个物理(或虚拟)计算机体系结构。这与大多数高级语言形成鲜明对比,这些语言是理想的便携式语言。

+2

它的大部分也不会跨越OS,因为您依赖于OS设置的调用约定,中断代码等。 – 2010-09-15 07:32:38

+0

只有'__cdecl'调用转换窗口? – wamp 2010-09-15 07:56:51

2

汇编代码基本上是机器码的措辞形式;它旨在使写入机器代码更方便和可读。几乎有一对一的映射关系,所以一个汇编语句就变成了它的机器代码。 Macine代码与CPU相关。所以汇编也是CPU相关的。