1

私のEAXレジスタにはxxxxxx9D値が含まれており、次のアセンブリコードがあります。

C0C8 14 --> ROR AL,14

私にとって、これは、EAXの32ビット値の最後の8ビットが14 mod 8=6の位置でビット単位でローテーションされることを意味します。

0x9D = b1001 1101

に変換されます

b0111 0110 = 0x76

ただし、OllyDbgはEAX = xxxxxxD9、EAXがビット単位で4ビット回転したことを意味します。

私はどこが間違っていますか?

4

2 に答える 2

5

8 ビット レジスタを 20 桁回転させようとしています。これは少し多めです。8 回転しても同じ値になります。9 回転することは、1 回転することと同じです。したがって、プロセッサは 20 mod 8 = 4 位置だけ回転します。

于 2012-04-06T19:31:42.267 に答える
1

これを使用して、完全なコードを投稿してください。

mov     al,$9d
ror     al,14

予想通り76になりました。

編集$14 のポジションをローテーションすると、d9 になります。

于 2012-04-06T19:31:32.780 に答える