5. Команды управления1
Мнемоника |
Операция |
Примечание |
FNOP |
нет операции |
|
FWAIT, WAIT |
ожидание готовности FPU |
|
F[N]INIT |
CW037Fh, SW,TW,FIP,FDP0 |
инициализация FPU |
FENI |
разрешить прерывания (IEM0) |
только i8087, в старших FPU выполняется как NOP |
FDISI |
запретить прерывания (IEM1) |
|
F[N]STCW mem |
CWmem |
mem – 2-байтовая переменная |
FLDCW mem |
[mem] CW |
|
F[N]STSW mem F[N]STSW AX |
SW [mem] SW AX |
|
F[N]CLEX |
PE,UE,OE,ZE,DE,IE,B,ES,SF |
обнулить флаги исключений в регистре SW |
F[N]STENV mem |
сохранить среду |
Зап./чт. вспомогат. регистров FPU. mem – область памяти 14 / 28 байт |
FLDENV mem |
загрузить среду |
|
F[N]SAVE mem |
сохранить состояние и инициализировать FPU |
Запись/чтение вспомогательных и арифметических регистров FPU. mem – область памяти 94 / 108 байт |
FRSTOR mem |
восстановить состояние FPU |
|
FXSAVE mem |
быстро сохранить состояние FPU без ожидания |
начиная с P-II. mem – 512-байтовая область памяти на границе параграфа. |
FXRSTOR mem |
быстро восстановить сост-е FPU |
|
FSETPM |
FPU виртуальный режим. Для перевода в реальный режим необходим аппаратный сброс |
только i80287, в старших FPU выполняется как NOP |
FINCSTP |
inc(TOP) |
содержимое TW не меняется |
FDECSTP |
dec(TOP) |
|
FFREE ST(i) |
освободить ST(i) |
в слове тэгов регистр помечется как пустой |
1 наличие 2-й буквы N (No wait) в мнемонике означает, что соответствующая команда выполняется немедленно. Перед командой без N ассемблер автоматически вставляет WAIT: перед выполнением команды проверяются на наличие и обрабатываются незамаскированные особые случаи FPU.