PowerPC组装& ~31的意思?

时间:2014-02-04 19:32:55

标签: assembly powerpc u-boot

我在MPC8347 PowerPC上工作。在u-boot-v2014.01中,我在start.S

中有这条指令
li  r4, ((CONFIG_SYS_INIT_RAM_SIZE & ~31) + \
         (CONFIG_SYS_INIT_RAM_ADDR & 31) + 31) / 32

& ~31& 31的含义是什么? 32位是否有掩码? 我想验证R4中加载的值是否与我的旧u-boot-1.1.3相同。

1 个答案:

答案 0 :(得分:3)

它不是32位,而是5位。

数字32是0x00000020。

31是0x0000001f。

~31是0xffffffe0。

所以& 31给出低5位。

&安培; ~31给出了所有位,除了低5位关闭。

代码似乎是将一个32字节块的块号大于RAM芯片的高位地址。 我从它添加31的部分得到它,然后除以32。