МНЕМОКОД
ОПИСАНИЕ
FSQRT
Извлечение квадратного корня
FSCALE
Масштабирование на степень 2
FPREM
Нахождение частичного остатка
FPREM1
Нахождение остатка
FRNDINT
Округление до целого
FXTRACT
Выделение порядка и мантиссы
FABS
Нахождение абсолютной величины
FCHS
Изменение знака
FSQRT:- извлекает квадратный корень из ST(0) и записывает результат
в ST(0). При попытке извлечения корня из отрицательного числа
возникает особый случай недействительной операции. Начиная с
процессора 80486, разрешены операции : .
FSCALE: . Если ST(1) не целое и больше 1 по абсолютной величине, то
берется ближайшее меньшее целое, если ST(1) меньше 1 или находится
вне диапазона, то результат неопределенный, особый случай не
генерируется. Начиная с сопроцессора 80387 ограничений на операнды
команды нет.
FXTRACT: разлагает ST(0) на два числа с плавающей точкой:
несмещенный порядок и знаковую мантиссу. Порядок заменяет старое
значение ST(0), а мантисса включается сверху, то есть указатель
стека уменьшается на единицу. Порядок истинный, в форме
вещественного числа.
FRNDINT: округляет ST(0) до целого числа в формате с плавающей
точкой согласно полю RC регистра состояния.
FABS: заменяет содержимое регистра ST(0) на его абсолютное значение
(изменяет знаковый разряд).
FCHS: инвертирует знак содержимого ST(0).
FPREM: вычисляет остаток от деления содержимого ST(0) на число из
ST(1), знак остатка совпадает со знаком ST(0). Остаток заменяет
содержимое ST(0). FPREM формирует частичный остаток, так как
операция может прекратиться, не завершив операции деления. FPREM
работает, производя повторяющиеся машинные вычитания, при этом
производится не более 64 вычитаний. Если 64 вычитания достаточно,
чтобы число ST(0) < ST(1), то в ST(0) будет находится истинный
остаток, а бит С2 кода условия сбрасывается в нуль. Если 64
вычитаний недостаточно, то С2 устанавливается в единицу, а в ST(0)
находится уменьшенный результат после 64 вычитаний. С2 проверяется
командой JP, после передачи регистра состояния в AX и командой
SAHF. Повторное вычитание FPREM до образования С2 = 0 дает точный
остаток. 64 вычитания делают для того, чтобы между повторными
исполнениями команды можно было прервать сопроцессор (64 вычитания
гарантируют, что FPREM не будет длиться дольше команды деления, то
есть не превысит длительности максимальной по времени команды).
Применяется в основном в вычислениях тригонометрических
функций.
FPREM1 (введена в систему команд для сопроцессора 80387): вычисляет
величину REM = ST - ST(1)*Q, где Q – целая часть числа ST/ST(1);
С0,С3,С2 – содержат младшие три бита частного.
Дополнительные арифметические команды
314
0
1 минута
Понравилась работу? Лайкни ее и оставь свой комментарий!
Для автора это очень важно, это стимулирует его на новое творчество!