如何查看OllyDbg 中的XMM0
-XMM7
寄存器?我可以右键单击寄存器窗口并转到view MMX
寄存器,但我不确定它们是否相同。我看到一条指令:MOVSS DWORD PTR DS:[ESI+8],XMM0
随着该指令的逐步MM0
执行,寄存器窗口中显示的值不会成为存储在 的值[ESI+8]
。
所以,我认为另一个问题是:是XMM0
和MM0
寄存器的不同?
如何查看OllyDbg 中的XMM0
-XMM7
寄存器?我可以右键单击寄存器窗口并转到view MMX
寄存器,但我不确定它们是否相同。我看到一条指令:MOVSS DWORD PTR DS:[ESI+8],XMM0
随着该指令的逐步MM0
执行,寄存器窗口中显示的值不会成为存储在 的值[ESI+8]
。
所以,我认为另一个问题是:是XMM0
和MM0
寄存器的不同?
所以事实证明,OllyDbg v1.10 不支持SSE 寄存器(XMM0-7),但在我找到并在此处下载的v2.0 中支持,到目前为止效果很好。然而,最新版本不支持插件。
要正确回答您的问题,是的。xmm
寄存器是英特尔SSE
在 1999 年随 Pentium III CPU的指令集 (IS)引入的。SSE
代表 Streaming SIMD Extension,是一组向量指令。xmm
寄存器为 128 位宽,可以容纳 4 floats
、 2doubles
或 16 chars
。SSE
如果使用得当,可以显着加快信号处理应用程序(图像处理、声音处理、压缩等)、加密和其他应用程序的速度。
另一方面,mm
寄存器是MMX
IS 的一部分,这是另一个早于SSE
(我想是 1997 年)的向量指令集,并且是 64 位宽。如今,向量指令集以某种方式变得相当流行(向量CPUs
是 70 年代和 80 年代超级计算机的标准——Cray 的、ThinkingMachine 的……计算机都是基于向量的)。前几年Intel提出了很多版本SSE
和两个新的IS叫做AVX
& AVX2
(Advanced Vector Extension),256位宽向量在SandyBridge/IvyBridge/Haswell上AVX-512
实现,并首先在Xeon Phi的KNC(Knight's Corner)上实现处理器和协处理器线。
我鼓励您查看英特尔文档和维基百科以获取更多信息。