Перейти к содержанию
  • записи
    104
  • комментариев
    125
  • просмотр
    26 111

FPU инструкция FINCSTP. Очистка ST(0)


MasterGH

1 762 просмотра

FINCSTP

 

Скрытый текст
Цитата

Описание:

Команда FINCSTP добавляет единицу (без переноса) к трехбитному полю TOP слова состояния FPU.

Эффект действия команды FINCSTP заключается во вращении стека. Она не изменяет регистров тэгов и не перемещает данные. Она не эквивалентна операции выталкивания из стека, потому что, она не устанавливает тэг старой вершины стека в значение пустой.

Флаги C0, C2, C3 регистра SW после выполнения команды неопределены, флаг C1 устанавливается равным 0.

 

 

Похожа на FSTP, также вращает стек регистров FPU (я кстати не знал, увидел при тестах в CE), но только не перемещает значение по адресу.

 

FSTP [здесь указывается адрес или регистр]

FINCSTP

 

Если нужно вытолкнуть значение из ST(0), а адрес куда его выталкивать не нужен, то можно сделать так

FINCSTP

Или аналог

FSTP ST(0)

 

При использовании стоит обратить внимание на флаги, возможно их состояние будет влиять на исполнение кода.

Скрытый текст

590611d5d086c_.thumb.png.98041d79a942517

 

*Вообще не помню почему я пишу "выталкивать значение" через fstp, когда оно появляется снизу в ST(8). Т.е. не выталкивается по сути.

1 Комментарий


Рекомендуемые комментарии

*Вообще не помню почему я пишу "выталкивать значение" через fstp

 

Ну мы же в основном в СЕ - скриптах  fstp  используем для того чтобы записать в память и продвинуть  ST(1) в  ST(0), поэтому никто и не смотрел на низ стека.

Хотя я в своих видео это видел.

Ссылка на комментарий

Пожалуйста, войдите, чтобы комментировать

Вы сможете оставить комментарий после входа в



Войти
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.