FIST            Store integer                        Exceptions: I P
FISTP Store integer and pop C3 C2 C1 C0: ? ? * ?

FIST destination
FISTP destination

; FIST ; FISTP
Logic destination ← ST destination ← ST
pop ST

FIST converts the value in ST into a signed integer according to the
RC field of the control word. It then stores ST at destination,
which can be either a word or short integer in memory.

FISTP operates like FIST, except that it also pops the stack and
supports a long integer destination.


Note
If the value in ST is too large to represent an integer, an invalid
operation exception is raised. The masked response is to write the
most negative integer to memory.

The destination operand cannot be one of the 80x86 general registers.


Opcode Format
DF /2 FIST m16
DB /2 FIST m32
DF /3 FISTP m16
DB /3 FISTP m32
DF /7 FISTP m64


Timing
Variations/
operand 8087 287 387 486 Pentium
fist m16 (80-90)+EA 80-90 82-95 29-34 6 NP
fist m32 (82-92)+EA 82-92 79-93 28-34 6 NP
fistp m16 (82-92)+EA 82-92 82-95 29-34 6 NP
fistp m32 (84-94)+EA 84-94 79-93 28-34 6 NP
fistp m64 (94-105)+EA 94-105 80-97 28-34 6 NP