在Assembler中调试xmm寄存器

时间:2015-12-22 22:20:49

标签: visual-studio debugging assembly dll sse

我使用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寄存器的值,并且在调试期间在寄存器窗口的红色colore中显示它,因为值已更改。 但是,如果我更改xmm寄存器的值,它不会显示为红色,并且此寄存器的值仍然是: XMM0 = 00000000000000000000000000000000 XMM1 = 00000000000000000000000000000000 在调试期间,当我在c#中时,我才注意到寄存器发生了变化。 XMM0 = 00000000000000000000000000000007 XMM1 = 00000000000000000000000000000002
我的问题是:为什么xmms的值在调试期间在寄存器窗口中不会改变,但程序是否正常工作?

1 个答案:

答案 0 :(得分:2)

您知道,12月1日发布的VS的RTM更新不会在调试器中正确显示YMM / XMM寄存器中的数据。这个问题已经引起了MSFT团队的注意,并且正在进行中。

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

希望这会有所帮助......