extrwi如何运作?

时间:2015-03-30 15:36:17

标签: assembly powerpc opcode

我在翻译以下PowerPC指令时遇到了困难:

extrwi r12, r10, 8, 16

我一直认为这意味着:

r12 := (r10 << 24) AND 00000000000000000000000011111111

但这似乎并不合适。 任何人都可以验证这是否正确?谢谢:))

1 个答案:

答案 0 :(得分:2)

extrwi r12, r10, 8, 16将提取8r10起始位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