マイEAX
レジスタがxxxxxx9D
値が含まれていると私は、次のアセンブリコードがあります。私にはx86 ROR命令はどのように機能しますか?
C0C8 14 --> ROR AL,14
を、それが= EAX
の32ビット値の最後の8ビットは14 MOD 8によってビット単位を回転させることを意味し6位
0x9D = b1001 1101
はOLL、しかし
b0111 0110 = 0x76
に変換されますyDbgは私に、EAX = xxxxxxD9
がEAXがビットごとに4ビット回転したことを意味します!
どこが間違っていますか?
小数点以下20桁の14進数です。 –
レコードの場合:コンパイラに優しい方法で回転を表現するためのベストプラクティスは未定義の振る舞いを避けてください:http://stackoverflow.com/questions/776508/circular-shift-rotate-operations-in-c。その答えには、gccとclangが単一の 'ror'命令を生成するコードがあります。 –