easy68k部分旋转? (ROL / ROR)

时间:2016-01-28 21:47:07

标签: assembly rotation easy68k

所以我知道ROL和ROR如何用于D0 =%00000100之类的东西,如果我ROR#1,D0那么D0现在它将是00000010.

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

1 个答案:

答案 0 :(得分:1)

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

  1. 将寄存器复制到另一个寄存器中。
  2. 清除原始寄存器的低3位(AND与%11111000)。
  3. 清除副本中的其他位(AND与%00000111)。
  4. 向右旋转副本。
  5. 复制副本。
  6. 将第二个副本右移5位。
  7. 或第二个副本与第一个。
  8. 清除第一个副本的高位(AND%00000111)。
  9. 或第一份副本与原始注册。