2012-11-11 2 views
1

Je n'arrive pas à comprendre ceci: à quoi servent ces commandes (FFREE, FDECSTP)? Peut-il être utilisé pour sortir une valeur de la pile fpu, ou est-ce pour un autre but? Je ne l'obtenir:/Quelqu'un pourrait-il expliquer que, TNXutilisation de FFREE et FDECSTP

Répondre

4

Oui, en utilisant FFREE, FINCSTP et FDECSTP vous pouvez gérer la pile FPU manuellement. Notez que la pile FPU se développe de la même façon que la pile du CPU, donc pour supprimer (pop) quelque chose, vous marquez le registre comme libre et incrémentez le pointeur de la pile.

Vous ne verrez pas ces instructions dans le code standard, d'autant plus qu'elles ne peuvent utiliser qu'un seul registre à la fois. Dans le cas d'une pile CPU utilisant ADD ESP, x, vous pouvez défausser plusieurs objets en une fois, vous ne pouvez pas le faire avec la pile FPU. En tant que tel, généralement vous utilisez FSTP st(0) pour jeter un élément, au lieu de la paire équivalente FFREE + FINCSTP. Lorsque vous allouez un article, vous voulez normalement l'initialiser aussi, utilisez donc une variante FLD.

+0

bien, c'est la réponse complète je pense, tnx –