PowerPC 和 clrlslwi - 或 - rlwinm 指令
PowerPC and the clrlslwi -or- rlwinm instruction
我已经阅读了这里的其他帖子,但仍然对 PPC 和 rlwinm 有疑问。
我正在查看的示例是:
li r0, 0x100
clrlslwi r9, r0, 27,5 (which afaik is the same as rlwinm r9, r0,5,22,26)
首先我加载 r0 = 0x100
然后将 r0 左移 5,所以 r0 = 0x2000(没有溢出,所以不需要旋转)
制作一个掩码,其中位 22 到 26 设置为 = 0x3e0
AND r0 掩码 = 0x2000 AND 0x3E0 = 0
我一定是做错了什么......这总是净 0
我错过了什么?
是的,确实如此(立即向左清除并左移单词)
clrlslwi rA,rS,b,n (n ≤ b ≤ 31) = rlwinm rA,rS,n,b – n,31 – n
所以
clrlslwi r9, r0, 27,5 = rlwinm r9, r0, 5, 22(27-5), 26(31-5)
我已经阅读了这里的其他帖子,但仍然对 PPC 和 rlwinm 有疑问。
我正在查看的示例是:
li r0, 0x100
clrlslwi r9, r0, 27,5 (which afaik is the same as rlwinm r9, r0,5,22,26)
首先我加载 r0 = 0x100 然后将 r0 左移 5,所以 r0 = 0x2000(没有溢出,所以不需要旋转)
制作一个掩码,其中位 22 到 26 设置为 = 0x3e0
AND r0 掩码 = 0x2000 AND 0x3E0 = 0
我一定是做错了什么......这总是净 0 我错过了什么?
是的,确实如此(立即向左清除并左移单词)
clrlslwi rA,rS,b,n (n ≤ b ≤ 31) = rlwinm rA,rS,n,b – n,31 – n
所以
clrlslwi r9, r0, 27,5 = rlwinm r9, r0, 5, 22(27-5), 26(31-5)