2016-01-28 31 views
0

所以我知道ROL和ROR如何爲像D0 =%00000100,如果我ROR#1,D0則D0現在將00000010easy68k局部旋轉? (ROL/ROR)

我想要做的是旋轉通過只選擇該數字的幾個數字,例如,如果我ROR%00000001一個點,我希望它是00000100而不是10000000,所以它只能旋轉該數字的最後3位。有沒有辦法做這樣的事情,我設置旋轉的邊界,所以它不會一直回到第一位?

回答

1

有「沒有銀子彈」。你必須手動完成。

  1. 將寄存器複製到另一個寄存器中。
  2. 清除原始寄存器的低3位(與%11111000進行AND)。
  3. 清除副本中的其他位(AND with%00000111)。
  4. 旋轉副本權限。
  5. 複製副本。
  6. 將第二個副本右移5位。
  7. 或第二個副本與第一個。
  8. 清除第一個副本的高位(AND與%00000111)。
  9. 或第一個副本與原始寄存器。