1.大小端格式的定义
在ARM体系结构的数据存储格式中,将4字节定义为一个字(Word),2字节定义为半字。
例如从0地址开始存放字数据,0号字节到3号字节放置第一个字数据,从第4号字节到第7字节放置第二个字数据。
当ARM处理器向以字节为单位编址的线性地址空间写入字数据(或半字数据)时,就存在一个字(或半字)中,高位字节和低位字节与存储器连续的4个字节单元(或2个)字节对应的问题。
小端格式是字数据中的低字节对应4个字节存储空间的低地址单元、高字节对应存储空间的高地址单元。
大端格式是字数据中的低字节对应4个字节存储空间的高地址单元、高字节对应存储空间的低地址单元。
例如一个字的数据0x12345678 其字节从高到低分别为 0x12、0x34、0x56、0x78
假设他存储在起始地址单元为0x0000的存储空间则
| ++++ | 低地址位 | ++++ | ++++ | 高地址位 |
|---|---|---|---|---|
| 地址空间 | 0x0000 | 0x0001 | 0x0002 | 0x0003 |
| 大端格式 | 0x12 | 0x34 | 0x56 | 0x78 |
| 小端格式 | 0x78 | 0x56 | 0x34 | 0x12 |
- 大小端格式的优缺点
大端容易判断出正负,小端容易进行数据类型转换。
一般情况下,ARM是大端模式,X86是小端模式。

本文探讨了ARM处理器中的大端和小端存储格式,如何影响字节和数据类型的布局,并举例说明了它们在数组存储中的表现。还解释了大小端模式的区别及其在不同架构如ARM和X86中的常见模式。
1722

被折叠的 条评论
为什么被折叠?



