在x86汇编语言中使用little-endian表示法有什么好处?

时间:2012-07-25 00:25:34

标签: assembly x86 endianness

  

可能重复:
  Why is x86 little endian?

我个人而且,我敢打赌很多人会同意这一点,发现big-endian字节排序符号更容易阅读和理解。我认为big-endian字节排序对于CPU来说就像处理小端字节顺序一样容易。

在文章The Dark Corners of x86中,David Chisnall表示

  

“[...]当时看起来好主意的功能逐渐被添加,直到我们留下了被称为现代x86架构的kludge。”

由于big-endian字节排序应该同样容易 - 如果不是更容易处理,特别是当涉及到浮点类型时,little-endian对big-endian提供了哪些好处?

2 个答案:

答案 0 :(得分:1)

无。

架构使用 big-endian或little-endian顺序确实没有特别的理由;有人喜欢他们每个人。甚至有一些芯片可以做到这两点!但在大多数情况下,一个架构选择一个订单,这就是你的选择。世界上有太多的x86代码用于切换排序有意义,即使 是一个很好的理由。

答案 1 :(得分:1)

我发现硬件更容易使用小端,而人类更容易使用大端。今天它根本不重要,因为字节通道都被独立于字节序而被推,并且一些架构无论如何都做到了(ARM有两个版本的大版本和一个版本的小版本)。可变字长指令和允许未对齐转移是比大与小相比更大的问题。

由于历史偏好以及随之而来的神话和意见,今天仍然有很强的偏好。像宗教和政治一样,这是一个禁忌话题,可以而且确实会导致大声争论。在一天结束时,每一方只有更强大的支持他们的一方,实际的转换是罕见的。这些强烈的意见可能是新设计宣布其中一种的源头。

随着arm主导处理器世界和x86覆盖台式机,笔记本电脑和服务器,pci(e)惯例等,我们确实生活在一个像它一样的小端世界。

如果你“进行系统工程”,你将不会遇到任何字节序问题,因为接口规范将定义哪些字节在哪里,并且双方都符合接口规范。