Cortex-A8数据存储端模式
内存每个单元存储一个字节,内存单元地址号从零开始按升序排列。
一个字(32位)由4个字节组成,存贮一个字需要占用4个连续存储单元。存放于地址A的字包含分别存放于地址A、A+1、A+2、A+3的四个字节。一个字在其占用4个连续存储单元的存储顺序依照存储端模式(endianness),可以分为小端模式(Little -endian)和大端模式(big-endian)两种。
小端模式的字型数据存储格式为数据的低位字节存于低端地址号的单元中,高位字节存于高端地址号的单元中。如一个字型数据以十六进制格式表示为0x12345678,该数据由4个字节组成。需要占用4个连续存储单元。当将该数据存储于0x00000050单元时,其数据在内存单元中的存储格式如表1.8所示。表中存储单元地址号一栏中为了便于阅览,特将0x00000050书写为0x0000_0050。
表1.8 存储单元数据存储的端模式
存储单元地址号 |
小端存储模式(Little -endian) |
大端存储模式(big-endian) |
0x0000_0053 |
0x12 |
0x78 |
0x0000_0052 |
0x34 |
0x56 |
0x0000_0051 |
0x56 |
0x34 |
0x0000_0050 |
0x78 |
0x12 |
处理器的数据存储端模式由程序状态寄存器第九位决定,同时可以通过设置CFGENDO管脚电平来硬件配置E的状态。