在工作中遇到一个问题,一段汇编代码如下:
fild dword ptr [eax]
EAX指向的内存中为一个整数,但fild指令读入数据,ST0寄存器却为NAN,非数值。
这种原因可能是由于上下文件环境对浮点运算器操作后导致浮点数据运算器的标志位或环境改变,需要重置浮点运算器。
finit
finit指令会清除浮点寄存器栈和异常,在开始浮点运算前或运算结束后,进行一次finit操作可以避免带来不确定的问题。
在工作中遇到一个问题,一段汇编代码如下:
fild dword ptr [eax]
EAX指向的内存中为一个整数,但fild指令读入数据,ST0寄存器却为NAN,非数值。
这种原因可能是由于上下文件环境对浮点运算器操作后导致浮点数据运算器的标志位或环境改变,需要重置浮点运算器。
finit
finit指令会清除浮点寄存器栈和异常,在开始浮点运算前或运算结束后,进行一次finit操作可以避免带来不确定的问题。