Little Endian布线?

时间:2013-08-13 13:06:18

标签: endianness

我对endian-ness概念有疑问。请不要将我推荐给维基百科,我已经读过了。

Endian-ness,是不是只有 2种方式硬件布线(在内存和寄存器之间,通过数据总线)已经在系统中实现了?

根据我的理解,下面的图片是一个小端实现(从存储器地址(例如4000)跟随水平线然后垂直线到达寄存器的低/高部分请) 如您所见,很少有内存地址物理连接到低字节的4字节寄存器。 我认为它与任何语言的 READ和WRITE 指令完全无关(例如ARM中的LDR)。

1字节内存地址:

 - 4000 value:XX ------------------|
 - 4001 value:XX ---------------|  |
 - 4002 value:XX ------------|  |  |
 - 4003 value:XX ---------|  |  |  |
                          |  |  |  |
 general-purpose register:XX XX XX XX

1 个答案:

答案 0 :(得分:0)

是和否。 (我看不到你的图表,但我想我明白你在问什么)。数据线在硬件中物理连接的方式可以确定/控制存储器中的表示是被视为大端还是小端。但是,还有更多的东西; little endian是表示的一种方式,因此例如存储在磁存储(文件中)中的数据可能使用小端表示或大端表示来编码,显然在这个级别硬件并不重要。

此外,一些8位微控制器可以执行16位操作,这些操作使用两个独立的存储器访问在硬件级别执行。因此,它们可以使用独立于总线设计和ALU连接的小端或大端表示。