【问题标题】:How does extrwi work?extrwi 是如何工作的?
【发布时间】:2015-03-30 15:36:17
【问题描述】:

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

extrwi r12, r10, 8, 16

我一直假设它的意思是:

r12 := (r10 << 24) AND 00000000000000000000000011111111

但这似乎不对。 谁能验证这是否正确?谢谢:)

【问题讨论】:

  • POWER 确实会通过旋转和遮罩进行切换。此操作将r10 向左旋转 24,然后屏蔽最高24 位。它会导致 移位和掩码。
  • 谢谢 :) 让 shift 和 rotate 感到困惑
  • @EOF:想把它写下来作为答案吗?对我来说看起来很正确:)
  • @JeremyKerr:我知道我不应该回答 cmets 中的问题,但对于一个简短的回答 this,我不会被打扰。欢迎你写答案!完成后告诉我,以便我投票。

标签: assembly powerpc opcode


【解决方案1】:

extrwi r12, r10, 8, 16 将提取r10 起始位168 位(位0 是最高位(符号位))。

所以对于你的问题,你几乎是对的,除了它是 rotate 左移 24 而不是左移 24,然后使用低 8 位掩码进行与运算(如@EOF 所述):

r12 := (r10 <rotate left by> 24) AND 00000000000000000000000011111111

提取并右对齐(Word)立即数:

参见 PowerPC ISA Book I,第 1 页。第 160 页和第 16 页的解释。 74: https://www.ibm.com/developerworks/systems/library/es-archguide-v2.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-24
    • 2016-11-13
    • 2017-10-11
    • 2021-10-13
    • 2011-02-24
    • 2013-11-16
    • 2011-10-16
    • 2012-11-03
    相关资源
    最近更新 更多