怎么判断嵌入式系统的对齐方式?

来源:百度知道 编辑:UC知道 时间:2024/06/24 16:40:54
是little-endian还是high-endian?

int checkCPU()
{

{
union w
{

int a;
char b;
} c;

c.a = 1;
return (c.b == 1);
}
}
剖析:
嵌入式系统开发者应该对Little-endian和Big-endian模式非常了解。采用Little-endian模式的CPU
对操作数的存放方式是从低字节到高字节,而Big-endian 模式对操作数的存放方式是从高字节到低字
节。例如,16bit宽的数0x1234 在Little-endian 模式CPU 内存中的存放方式(假设从地址0x4000
开始存放)为:

内存地

0x4000

0x4001

存放内

0x34

0x12


而在Big-endian 模式CPU 内存中的存放方式则为:

内存地

0x4000

0x4001

存放内

0x12

0x34


32bit宽的数0x12345678在Little-endian模式CPU内存中的存放方式(假设从地址0x4000开始存放)
为:

内存地0x4000 0x4001 0x4002 0x4003
73


存放内

0x78 0x56 0x34 0x12

而在Big-endian 模式CPU 内存中的存放方式则为:

内存地

0x4000 0x4001 0x4002 0x4003
存放内

0x12 0x34 0x56 0x78

联合