我在翻译以下 PowerPC 指令时遇到困难:extrwi r12, r10, 8, 16
我一直假设这意味着:r12 := (r10 << 24) AND 00000000000000000000000011111111
但这似乎不对。
任何人都可以验证这是否正确?谢谢 :)
最佳答案
extrwi r12, r10, 8, 16
将提取 8
起始位 r10
的 16
位(位 0 是最高位(符号位))。
所以对于你的问题,你几乎是对的,除了它是向左旋转 24 而不是向左移动 24,然后与低 8 位的掩码(如@EOF 提到的):
r12 := (r10 <rotate left by> 24) AND 00000000000000000000000011111111
提取和右对齐(字)立即:
请参阅 PowerPC ISA 第一册,第 1 页。 160 和第 15 页的解释。 74:
https://www.ibm.com/developerworks/systems/library/es-archguide-v2.html
关于assembly - extrwi 是如何工作的?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29350342/