字节序问题 --- Endianness
1.1. Processers
所有的字节序问题都要追踪到CPU上,不管是GeneralCPU 还是 Special CPU ,CPU决定了存储的字节排列顺序问题,即字节序(Endianness)。
通用CPU领域以intel代表的x86家族历来以little-endian为主,而POWER-PC则主推big-endian设计的CPU;对于SpecialCPU,特别是在嵌入式领域,如网卡上的嵌入式微处理器,存储控制器上的嵌入式微处理器,基本采用了big-endian的设计。所以出现了两种定义说法:主机字节序(host-endianness)和网络字节序(net-endianness)。
1.2.数据访问地址 --- 字节低地址
不管是程序还是CPU处理,都是以字节低地址为基本,这是真正理解字节序问题的基本标尺。
1.3.CPU寄存器与内存寄存器数据存放格式
首先一定要认识到CPU寄存器的数据存放格式是统一的,以32位寄存器EAX为例说明,如图1.1所示。
图1.1 数据存储格式映射