| Аппаратное обеспечение IBM PC© Александр Фролов, Григорий ФроловТом 2, книга 1, М.: Диалог-МИФИ, 1992.
 
 Загрузка данных в стек
FLD src         Загрузка вещественного числа
                        st(0) <- src (mem32/mem64/mem80)
FILD src                Загрузка целого числа
                        st(0) <- src (mem16/mem32/mem64)
FBLD src                Загрузка десятичного числа
                        st(0) <- src (mem80)
Загрузка констант
FLDZ                    Загрузка нуля
                        st(0) <- 0.0
FLD1                    Загрузка единицы
                        st(0) <- 1.0
FLDPI           Загрузка числа Pi
                        st(0) <- Pi
FLDL2T          Загрузка log2(10)
                        st(0) <- log2(10)
FLDL2E          Загрузка log2(e)
                        st(0) <- log2(e)
FLDLG2          Загрузка log10(2)
                        st(0) <- log10(2)
FLDLN2          Загрузка loge(2)
                        st(0) <- loge(2)
Запись данных
FST dest                Запись вещественного числа
                        dest <- st(0) (mem32/mem64)
FSTP dest               Запись вещественного числа с извлечением
                        его из стека численных регистров
                        dest <- st(0) (mem32/mem64/mem80)
FIST dest               Запись целого числа
                        dest <- st(0) (mem32/mem64)
FISTP dest      Запись целого числа с извлечением
                        его из стека численных регистров
                        dest <- st(0) (mem16/mem32/mem64)
FBST dest               Запись десятичного числа
                        dest <- st(0) (mem80)
FBSTP dest      Запись десятичного числа с извлечением
                        его из стека численных регистров
                        dest <- st(0) (mem80)
Сравнение 
FCOM                    Сравнение вещественных чисел
                        Установка флагов по результатам операции
                        st(0) - st(1)
FCOM op         Сравнение вещественных чисел
                        Установка флагов по результатам операции
                        st(0) - op (mem32/mem64)
FCOMP op                Сравнение вещественных чисел с извлечением
                        из стека
                        Установка флагов по результатам операции
                        st(0) - op (mem32/mem64)
FCOMPP          Сравнение вещественных чисел с двойным извлечением
                        из стека численных регистров
                        Установка флагов по результатам операции
                        st(0) - st(1)
FICOM op                Сравнение целых чисел
                        Установка флагов по результатам операции
                        st(0) - op (mem16/mem32)
FICOMP op               Сравнение целых чисел с извлечением
                        из стека численных регистров
                        Установка флагов по результатам операции
                        st(0) - op (mem16/mem32)
FTST                    Сравнение с нулем
                        Сравнивается st(0) и 0.0
FUCOM st(i)     Неупорядоченное сравнение (только 80486)
                        Содержимое st(0) сравнивается с st(i)
FUCOMP st(i)    Неупорядоченное сравнение (только 80486)
                        с извлечением из стека численных регистров
                        Содержимое st(0) сравнивается с st(i)
FUCOMPP st(i)   Неупорядоченное сравнение (только 80486)
                        с двойным извлечением из стека численных регистров
                        Содержимое st(0) сравнивается с st(i)
FXAM                    Проверка верхушки стека
                        По состоянию st(0) устанавливаются коды условий
Арифметические команды 
FADD                    Сложение вещественных чисел
                        st(0) <- st(0) + st(1)
FADD src                Сложение вещественных чисел
                        st(0) <- st(0) + src (mem32/mem64)
FADD st(i),st   Сложение вещественных чисел
                        st(i) <- st(i) + st(1)
FADDP st(i),st  Сложение вещественных чисел с извлечением
                        из стека численных регистров
                        st(i) <- st(i) + st(1)
FIADD src               Сложение целых чисел
                        st(0) <- st(0) + src (mem16/mem32)
FSUB                    Вычитание вещественных чисел
                        st(0) <- st(0) - st(1)
FSUB src                Вычитание вещественных чисел
                        st(0) <- st(0) - src
FSUB st(i),st   Вычитание вещественных чисел
                        st(i) <- st(i) - st(1)
FSUBP st(i),st  Вычитание вещественных чисел с извлечением
                        из стека численных регистров
                        st(i) <- st(i) - st(1)
FSUBR st(i),st  Вычитание вещественных чисел обратное
                        st(0) <- st(i) - st(0)
FSUBRP st(i),st Вычитание вещественных чисел обратное
                        с извлечением из стека численных регистров
                        st(0) <- st(i) - st(0)
FISUB src               Вычитание целых чисел
                        st(0) <- st(0) - src (mem16/mem32)
FISUBR src      Вычитание целых чисел обратное
                        st(0) <- src (mem16/mem32) - st(0)
FMUL                    Умножение вещественных чисел
                        st(0) <- st(0) * st(1)
FMUL st(i)      Умножение вещественных чисел
                        st(0) <- st(0) * st(i)
FMUL st(i),st   Умножение вещественных чисел
                        st(i) <- st(0) * st(i)
FMULP st(i),st  Умножение вещественных чисел с извлечением
                        из стека численных регистров
                        st(i) <- st(0) * st(i)
FIMUL src               Умножение целых чисел
                        st(0) <- st(0) * src (mem16/mem32)
FDIV                    Деление вещественных чисел
                        st(0) <- st(0) / st(1)
FDIV st(i)      Деление вещественных чисел
                        st(0) <- st(0) / st(i)
FDIV st(i),st   Деление вещественных чисел
                        st(i) <- st(0) / st(i)
FDIVP st(i),st  Деление вещественных чисел с извлечением
                        из стека численных регистров
                        st(i) <- st(0) / st(i)
FIDIV src               Деление целых чисел
                        st(0) <- st(0) / src (mem16/mem32)
FDIVR st(i),st Деление вещественных чисел обратное
                        st(0) <- st(i) / st(0)
FDIVRP st(i),st Деление вещественных чисел обратное
                        с извлечением из стека численных регистров
                        st(0) <- st(i) / st(0)
FIDIVR src      Деление целых чисел обратное
                        st(0) <- src (mem16/mem32) / st(0)
FSQRT           Извлечение квадратного корня
                        st(0) <- v st(0)
FSCALE          Масштабирование на степень числа 2
                        st(0) <- 2 | st(0)
FXTRACT         Извлечение экспоненты
                        st(0) <- значение экспоненты st(0)
FPREM           Вычисление частичного остатка
                        st(0) <- st(0) MOD st(1)
FPREM1          Вычисление частичного остатка в стандарте IEEE,
                        только для 80486
                        st(0) <- st(0) MOD st(1)
FRNDINT         Округление до ближайшего целого
                        st(0) <- INT(st(0))
FABS                    Вычисление абсолютного значения
                        st(0) <- ABS(st(0))
FCHS                    Изменение знака
                        st(0) <- -st(0)
Трансцендентные команды 
FCOS                    Вычисление косинуса
                        st(0) <- COS(st(0))
FPTAN           Вычисление частичного тангенса
                        st(0) <- TAN(st(0))
FPATAN          Вычисление частичного арктангенса
                        st(0) <- ATAN(st(0))
FSIN                    Вычисление синуса
                        st(0) <- SIN(st(0))
FSINCOS         Вычисление синуса и косинуса
                        st(1) <- SIN(st(0))
                        st(0) <- COS(st(0))
F2XM1           Вычисление выражения 2x-1
                        st(0) <- 2st(0)-1
FYL2X           Вычисление Y * log2(X)
                        Y = st(0), X = st(1)
                        st(0) <- Y * log2(X)
FYL2XP1         Вычисление Y * log2(X+1)
                        Y = st(0), X = st(1)
                        st(0) <- Y * log2(X+1)
Управляющие команды 
FINIT           Инициализация арифметического сопроцессора
FSTSW AX                Запись слова состояния
                        AX <- MSW
FSTSW dest      Запись слова состояния
                        dest (mem16) <- MSW
FLDCW src               Загрузка управляющего слова
                        CW <- src (mem16)
FSTCW dest      Запись управляющего слова
                        dest (mem16) <- CW
FCLEX           Сброс флагов особых случаев
FSTENV dest     Запись содержимого всех регистров
                        сопроцессора, кроме численных
FLDENV src      Загрузка содержимого всех регистров
                        сопроцессора, кроме численных
FSAVE dest      Запись содержимого всех регистров
                        сопроцессора
FRSTOR src      Загрузка содержимого всех регистров
                        сопроцессора
FINCSTP         Увеличение указателя стека численных
                        регистров на 1
                        st(6) <- st(5)
                        st(5) <- st(4)
                        st(4) <- st(3)
                        st(3) <- st(2)
                        st(2) <- st(1)
                        st(1) <- st(0)
                        st(0) <- пустой
FDECSTP         Уменьшение указателя стека численных
                        регистров на 1
                        st(0) <- st(1)
                        st(1) <- st(2)
                        st(2) <- st(3)
                        st(3) <- st(4)
                        st(4) <- st(5)
                        st(5) <- st(6)
                        st(6) <- st(7)
                        st(7) <- пустой
FFREE           Освобождение регистра st(i)
                        Команда помечает численный регистр st(i)
                        как неинициализированный, записывая в
                        соответствующее поле регистра тегов значение 11
FNOP                    Холостая команда
                        st(0) <- st(0)
WAIT/FWAIT      Синхронизация центрального процессора и
                        арифметического сопроцессора
                        Центральный процессор будет находиться
                        в состоянии ожидания до тех пор, пока
                        сопроцессор не завершит выполнение текущей команды.
FSETPM          Установить защищенный режим работы
                        Процессор переходит в защищенный режим работы,
                        возврат в реальный режим возможен только
                        при сбросе сопроцессора.
  
    | ![[Назад]](../../prev.gif) | ![[Содеожание]](../../sod.gif) |  |