我在翻译以下PowerPC指令时遇到了困难:
extrwi r12, r10, 8, 16
我一直认为这意味着:
r12 := (r10 << 24) AND 00000000000000000000000011111111
但这似乎并不合适。 任何人都可以验证这是否正确?谢谢:))
答案 0 :(得分:2)
extrwi r12, r10, 8, 16
将提取8
位r10
起始位16
(位0为最高位(符号位))。
所以对于你的问题,你几乎是正确的,除了它是一个 rotate 左边24而不是左移24,然后用低8位掩码进行AND运算(如提到的@EOF) ):
r12 := (r10 <rotate left by> 24) AND 00000000000000000000000011111111
提取和右对齐(Word)立即:
参见PowerPC ISA Book I,p。 160和对p的解释。 74: https://www.ibm.com/developerworks/systems/library/es-archguide-v2.html