【问题标题】:use of FFREE and FDECSTP使用免费和快速
【发布时间】:2012-11-11 20:58:49
【问题描述】:

我无法理解这些东西:这些命令(FFREE、FDECSTP)有什么用? 它可以用来从 fpu 堆栈中弹出值,还是出于其他目的? 我不明白:/有人可以解释一下吗,tnx

【问题讨论】:

    标签: assembly x86 fpu x87


    【解决方案1】:

    是的,使用FFREEFINCSTPFDECSTP,您可以手动管理 FPU 堆栈。请注意,FPU 堆栈的增长类似于 CPU 堆栈,因此要删除(弹出)某些内容,您将寄存器标记为空闲并递增堆栈指针。

    您不会在典型代码中看到这些指令,尤其是因为它们一次只能操作一个寄存器。如果 CPU 堆栈使用ADD ESP, x,您可以一次性丢弃多个项目,而使用 FPU 堆栈则无法做到这一点。因此,通常您使用FSTP st(0) 丢弃一项,而不是等效的FFREE + FINCSTP 对。分配项目时,您通常也需要初始化,因此请使用一些FLD 变体。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-02
      • 1970-01-01
      • 2014-05-25
      • 2010-10-27
      • 1970-01-01
      相关资源
      最近更新 更多