FPU инструкция FINCSTP. Очистка ST(0)
-
Команда FINCSTP добавляет единицу (без переноса) к трехбитному полю TOP слова состояния FPU.
Эффект действия команды FINCSTP заключается во вращении стека. Она не изменяет регистров тэгов и не перемещает данные. Она не эквивалентна операции выталкивания из стека, потому что, она не устанавливает тэг старой вершины стека в значение пустой.
Флаги C0, C2, C3 регистра SW после выполнения команды не определены, флаг C1 устанавливается равным 0.
Похожа на FSTP, также вращает стек регистров FPU (я кстати не знал, увидел при тестах в CE), но только не перемещает значение по адресу.
FSTP [здесь указывается адрес или регистр] FINCSTP
Если нужно вытолкнуть значение из ST(0), а адрес куда его выталкивать не нужен, то можно сделать так
FINCSTP
Или аналогFSTP ST(0)
При использовании стоит обратить внимание на флаги, возможно их состояние будет влиять на исполнение кода.
*Вообще не помню почему я пишу "выталкивать значение" через fstp, когда оно появляется снизу в ST(8). Т.е. не выталкивается по сути.