Rak*_*wal 2 sse visual-studio-debugging
我发现很难在Visual Studio的寄存器窗口中解释xmm寄存器的值.窗口显示以下内容:
XMM0 = 00000000000000004018000000000000 XMM1 = 00000000000000004020000000000000
XMM2 = 00000000000000000000000000000000 XMM3 = 00000000000000000000000000000000
XMM4 = 00000000000000000000000000000000 XMM5 = 00000000000000000000000000000000
XMM6 = 00000000000000000000000000000000 XMM7 = 00000000000000000000000000000000
XMM00 = +0.00000E+000 XMM01 = +2.37500E+000 XMM02 = +0.00000E+000
XMM03 = +0.00000E+000 XMM10 = +0.00000E+000 XMM11 = +2.50000E+000
XMM12 = +0.00000E+000 XMM13 = +0.00000E+000
Run Code Online (Sandbox Code Playgroud)
从我运行的代码中,XMM0和XMM1的值应该是6和8(或其他方式).此处显示的寄存器值为:XMM01 = +2.37500E+000
这转化为什么?
是的,它看起来像:
XMM0 = { 6.0, 0.0 } // 6.0 = 0x4018000000000000 (double precision)
XMM1 = { 8.0, 0.0 } // 8.0 = 0x4020000000000000 (double precision)
Run Code Online (Sandbox Code Playgroud)
你解释这个问题的原因是你的调试器只显示十六进制的每个128位XMM寄存器,然后低于4 x 单精度浮点数,但你显然使用双精度浮点数.
我不熟悉的Visual Studio调试器,但最好应改变你的XMM寄存器的表示方式 - 你可能要看看这个手册或在线帮助.
请注意,通常使用SSE的双精度很少有任何值,特别是如果你有一个相当现代的x86 CPU和两个FPU.
| 归档时间: |
|
| 查看次数: |
3107 次 |
| 最近记录: |