分类: C/C++
2020-07-23 18:19:03
原文地址:大端? 小端? 位域结构体怎么看? 作者:milburn_yan
1) 在小端核中定义结构体如下
struct
{
A:4;
B:16;
C:12
}
那么在小端寄存器中存放格式为:
MSB LSB
C11 C10 C9 C8 C7 C6 C5 C4 C3 C2 C1 C0 B15 B14 B13 B12 B11 B10 B9 B8 B7 B6 B5 B4 B3 B2 B1 B0 A3 A2 A1 A0
由于在小端核, 寄存器的低字节放在内存低地址
在内存中存放格式为
0xXXXX0020: B3 B2 B1 B0 A3 A2 A1 A0
0xXXXX0021: B11 B10 B9 B8 B7 B6 B5 B4
0x XXXX0022: C3 C2 C1 C0 B15 B14 B13 B12
0x XXXX0023: C11 C10 C9 C8 C7 C6 C5 C4
2) 在大端核中定义结构体同上:
struct
{
A:4;
B:16;
C:12
}
大端核寄存器中存放格式为
MSB LSB
A3 A2 A1 A0 B15 B14 B13 B12 B11 B10 B9 B8 B7 B6 B5 B4 B3 B2 B1 B0 C11 C10 C9 C8 C7 C6 C5 C4 C3 C2 C1 C0
由于在大端核, 寄存器的低字节放在高地址单元;
0xXXXX0020: A3 A2 A1 A0 B15 B14 B13
0xXXXX0021: B11 B10 B9 B8 B7 B6 B5 B4
0x XXXX0022: B3 B2 B1 B0 C11 C10 C9 C8
0x XXXX0023: C7 C6 C5 C4 C3 C2 C1 C0
C11 C10 C9 C8 C7 C6 C5 C4 B15 B14 B13 B12 C3 C2 C1 C0 B11 B10 B9 B8 B7 B6 B5 B4 A3 A2 A1 A0 B3 B2 B1 B0