一个 32 位寄存器,即 status_reg 有 1 个字段 (field_1 <0:31>)。要设置和清除此寄存器,我试图获取此寄存器的掩码值。所以一般来说,要获得掩码值,公式是:
mask = ((~(~0 << (hbit-lbit+1))) << lbit)
在此hbit是较高位置位,即 31。而lbit是较低位置位 ie0。我期望掩码值应该是 0xFFFFFFFF。但是得到掩码= 0。任何人都可以建议掩码有什么问题吗?
我使用的是 32 位系统。
一个 32 位寄存器,即 status_reg 有 1 个字段 (field_1 <0:31>)。要设置和清除此寄存器,我试图获取此寄存器的掩码值。所以一般来说,要获得掩码值,公式是:
mask = ((~(~0 << (hbit-lbit+1))) << lbit)
在此hbit是较高位置位,即 31。而lbit是较低位置位 ie0。我期望掩码值应该是 0xFFFFFFFF。但是得到掩码= 0。任何人都可以建议掩码有什么问题吗?
我使用的是 32 位系统。