Little endian与x86芯片中的Big endian约定

时间:2011-06-04 01:22:05

标签: x86 intel endianness

我意识到虽然英特尔芯片在数据段中存储数据时只是小端,但是在代码段中存储机器代码时,相同的芯片是大端。 MOV AL的操作码57是B057。 B0存储在低字节中,57存储在下一个更高字节中。 是小端还是大端的约定只适用于数据段?

2 个答案:

答案 0 :(得分:1)

字节顺序是指数据类型的表示形式。操作码不是数据(至少,不是这种意义上的),因此字节序不相关。

答案 1 :(得分:1)

endianess关注如何存储字节以构成更大的数据类型,例如最低有效字节是先存储还是最后存储在例如存储器中。一个16位整数。

这段机器代码由几个单独的部分组成,它没有被合并为一个整数,所以它并没有让senese谈论那里的endianess。现在,如果你有一个操作于大于一个字节的立即整数的操作码,那么整数将作为代码的一部分以小端存储。