在汇编程序中调试 xmm 寄存器

Debugging xmm registers in Assembler

我使用 XMM 寄存器使用汇编程序 dll 库在 C# 中编写程序。

我的 asm 代码:​​

mov eax, 5
mov ecx, 2
movd xmm0, eax           // here 
movd xmm1, ecx           // here
addss xmm0,xmm1          // and here no difference 
movd eax, xmm0          
ret 

一切如我所愿,但有一个小问题需要解决。 在调试此代码时,我正在更改 eax 和 exc 寄存器的值,并且在调试期间显示在寄存器 window 中的红色颜色上,因为值已更改。 但是如果我更改 xmm 寄存器的值,它不会显示为红色,并且该寄存器的值仍然是: XMM0 = 00000000000000000000000000000000 XMM1 = 00000000000000000000000000000000 只有在调试期间我在 c# 中时 ret 之后,我才能注意到寄存器发生了变化。 XMM0 = 00000000000000000000000000000007 XMM1 = 00000000000000000000000000000002
我的问题是:为什么在调试期间 xmms 的值在寄存器 window 中没有改变,但程序运行正常?

如您所知,12 月 1 日发布的 VS 的 RTM 更新未在调试器中正确显示 YMM/XMM 寄存器的数据。此问题已引起 MSFT 团队的注意,并正在处理中。

如果您可以提取 2015 年 12 月 1 日之前的 SW 版本,更新,则不会显示此特定问题。

希望这对您有所帮助...