【发布时间】:2013-09-08 20:58:43
【问题描述】:
如果我弄错了,请纠正我,但是 fstp 从 FPU 堆栈的顶部弹出值,例如 st0?
即 fstp 第二[rsp]
如果我在 SSE 寄存器 xmm0 中有值,那么等价的值是多少?我想打印存储在寄存器中的值。
【问题讨论】:
如果我弄错了,请纠正我,但是 fstp 从 FPU 堆栈的顶部弹出值,例如 st0?
即 fstp 第二[rsp]
如果我在 SSE 寄存器 xmm0 中有值,那么等价的值是多少?我想打印存储在寄存器中的值。
【问题讨论】:
SSE 不使用堆栈,它的寄存器可以直接访问。如果要显示 MMX 或 SSE 寄存器的内容,则“存储”指令是合适的。它将值复制到程序内存中的原始数据类型数组中(尽管在许多情况下,您可以简单地将 SSE 变量转换为高级语言,通过强制寄存器溢出到内存,获取其地址可能会干扰优化。首选使用加载和存储内在函数。)
例如,
MOVUPD
和
MOVUPS
说明。
【讨论】:
printf() 从汇编代码 那么浮点参数在%xmm0 之后(至少对于第一个...第六个浮点参数)。您无需将它们转移。