我对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
答案 0 :(得分:0)
是和否。 (我看不到你的图表,但我想我明白你在问什么)。数据线在硬件中物理连接的方式可以确定/控制存储器中的表示是被视为大端还是小端。但是,还有更多的东西; little endian是表示的一种方式,因此例如存储在磁存储(文件中)中的数据可能使用小端表示或大端表示来编码,显然在这个级别硬件并不重要。
此外,一些8位微控制器可以执行16位操作,这些操作使用两个独立的存储器访问在硬件级别执行。因此,它们可以使用独立于总线设计和ALU连接的小端或大端表示。