我无法理解这样的事情:有什么用这样的命令(FFREE,FDECSTP)的? 难道已经使用弹出值了FPU堆栈,或者这是某些其他目的? 我不明白:/可能有人解释说,TNX
Answer 1:
是的,使用FFREE
, FINCSTP
和FDECSTP
您可以手动管理的FPU堆栈。 需要注意的是FPU堆栈向下增长类似于CPU堆栈,所以要去除(POP)是你标记注册为自由而递增堆栈指针。
你不会看到在典型的代码这些说明,特别是因为他们只能在同一时间运行一个寄存器。 在使用CPU堆栈的情况下ADD ESP, x
可以一气呵成丢弃多个项目,你不能这样做,与FPU堆栈。 因此,通常使用FSTP st(0)
丢弃,而不是等效一项, FFREE
+ FINCSTP
对。 当分配一个项目,通常要进行初始化了,所以用一些FLD
变种。
文章来源: use of FFREE and FDECSTP