当前位置: 代码迷 >> 汇编语言 >> x86浮点寄存器是什么概念,如何得到浮点寄存器的值,任务切换保存上下文需要保存浮点寄存器吗
  详细解决方案

x86浮点寄存器是什么概念,如何得到浮点寄存器的值,任务切换保存上下文需要保存浮点寄存器吗

热度:1128   发布时间:2013-02-26 00:00:00.0
x86浮点寄存器是什么概念,怎么得到浮点寄存器的值,任务切换保存上下文需要保存浮点寄存器吗?
RT

------解决方案--------------------------------------------------------
探讨
RT

------解决方案--------------------------------------------------------
st(0)... 看intel寄存器和指令手册
------解决方案--------------------------------------------------------
浮点寄存器也是寄存器,保存的是浮点数据而已(其实也可以保存64位整数---COMP类型),fst/fstp指令可以存储栈顶浮点寄存器的值到内存,任务切换时保存浮点寄存器一般用fsave/fnsave/fxsave指令。

------解决方案--------------------------------------------------------
任务切换会用fsave,它保存整个浮点单元的状态。

------解决方案--------------------------------------------------------
那是因为你的任务切换未必发生在一段浮点运算指令中间,或者切换后的进程没有使用FPU。
你说的崩溃,可能是没取到地址吧,或者分配的空间不够,可以这样:
char a[108] = "";

__asm{
lea eax,a
fsave [eax]
}
  相关解决方案