我一直在做一些事情并遇到了另外几个问题。首先:
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 指令,所以我一直在去那里。问题一直在处理来自“rot”的值,因为我已经确定 MMX 操作只能通过我从 MASM32 得到的错误在这些寄存器上工作。但是当我尝试将“rot”和“64-rot”放入 MMX 寄存器时,我得到了更多的错误。我该如何解决这个问题?
我还需要将 MMX 寄存器添加为 QWords。我在参考资料中没有看到执行此操作的说明。无论如何,我是否需要将它们拆分为常规寄存器或通过 FP 指令推送它们?