Embedded 理解寄存器中的位移位
我必须使用这些数据更新32位寄存器 其中包括位移位,我对两件事感到困惑:Embedded 理解寄存器中的位移位,embedded,Embedded,我必须使用这些数据更新32位寄存器 其中包括位移位,我对两件事感到困惑: 哪个是LSB,哪个是MSB 这个操作符是什么 给出以下表达式: 3 << 0 | 7 << 3 | 1 << 6 | 0 << 7 | 1 << 7 | 0 << 8 | 0 << 10 | 0 << 11 | 0 << 12 | 0 << 13 | 0 << 14 或
3 << 0 |
7 << 3 |
1 << 6 |
0 << 7 |
1 << 7 |
0 << 8 |
0 << 10 |
0 << 11 |
0 << 12 |
0 << 13 |
0 << 14
或
LSB(最低有效位)是其值表示1(2^0)的位,MSB是其值表示2^(n-1)的位,其中n是寄存器中的位数。通常,当以二进制形式写入时,MSB是最左边的位,LSB是最右边的位。通常情况下,LSB在硬件文档中显示为位0,尽管我知道有一家公司将位编号颠倒,以便将MSB编号为0
请阅读有关位操作的教程。可能还有其他丢失的信息。问一个问题是没有用的,因为你很难对这个领域有一个一致的了解。如果您使用的是C,请阅读一本书。更好的方法还包括与C有关的位操作。对于|
和“…这将反转位编号,以便MSB编号为0。”我仅在PPC601文档中的9ties中看到了这一点。非常混乱。
011 111 1 0 1 0 0 0 0 0 0 X.......X
x .....X 0 0 0 0 0 0 1 0 1 111 011