0

所以我知道 ROL 和 ROR 如何适用于 D0 = %00000100,如果我 ROR #1,D0 那么 D0 现在将是 00000010。

我想要做的是只旋转该数字的几个数字,例如,如果我 ROR %00000001 一个点,我希望它是 00000100 而不是 10000000,所以它只旋转最后 3 位那个号码。有没有办法做这样的事情,我设置旋转的范围,所以它不会一直回到第一位?

4

1 回答 1

1

没有“银弹”。你必须手动完成。

  1. 将寄存器复制到另一个寄存器中。
  2. 清除原始寄存器的低 3 位(AND 与 %11111000)。
  3. 清除副本中的其他位(AND 与 %00000111)。
  4. 向右旋转副本。
  5. 复制副本。
  6. 将第二个副本右移 5 位。
  7. 或第二个副本与第一个副本。
  8. 清除第一个副本的高位(AND 与 %00000111)。
  9. 或带有原始登记簿的第一份副本。
于 2016-01-28T22:10:25.580 回答