私は何かに取り組んでいて、別の問題に遭遇しました。最初に:
ROR64 macro a, rot
; Result := (A shl (64-rot)) xor (A shr rot);
MOV EAX, 64
SUB EAX, rot
PSLLQ a, EAX
MOVQ mm6, a
PSRLQ mm6, rot
PXOR a, mm6
endm
私は最後の質問に従って QWords を使用してプロセスを試みてきました (おそらく DWords でも学習してみます)。私が使用している開発マシンでアクセスできるのは MMX 命令だけなので、そこに行ってきました。MMX ops は、MASM32 から取得したエラーを介してこれらのレジスタでのみ機能すると判断したため、問題は「腐敗」から来る値の処理にありました。しかし、「rot」と「64-rot」を MMX レジスタに入れようとすると、さらにエラーが発生します。これを解決するにはどうすればよいですか?
また、MMX レジスタを QWord として追加する必要があります。参考文献にこれを行うための指示がありません。とにかく、それらを通常のレジスタに分割するか、FP 命令でプッシュする必要がありますか?