2.4.4. Команды пересылки данных FPU

Команда Назначение Процессор

БШ источник Загрузить вещественное число в стек 8087

Команда помещает содержимое источника (32-, 64- или 80-битная переменная или ЭТ(п)) в стек и уменьшает ТОР на 1, Команда FLD ST(0) делает копию вер­шины стека.

Команда

Назначение

Процессор

FST приемник FSTP приемник

Скопировать вещественное число из стека Считать вещественное число из стека

BGB7 BGB7

Копирует 8Т(0) в приемник (32- или 64-битную переменную или пустой 8Т(п) в случае FSТ; 32-, 64- или 80-битную переменную или пустой SТ(n) в слу­чае FSТP). FSТP после этого выталкивает число из стека (помечает SТ(0) как пустой и увеличивает ТОР на один).

Команда Назначение Процессор

FILD источник Загрузитьцелое число в стек 8087

Преобразовывает целое число со знаком из источника (16-, 32- или 64-битная переменная) в вещественный формат, помещает в вершину стека и уменьшает ТОР на 1.

Команда Назначение Процессор

FIST приемник Скопировать целое число из стека 8087

FISTP приемник Считать целое число из стека 8087

Преобразовывает число из вершины стека в целое со знаком и записывает его в приемник (16- или 32-битная переменная для FIST; 16-, 32- или 64-битная пере­менная для FISTP). FISTP после этого выталкивает число из стека (помечает ST(0) как пустой и увеличивает ТОР на один). Попытка записи слишком боль­шого числа, бесконечности или не-числа приводит к исключению «недопустимая операция» (и записи целой неопределенности, если IM = 1).

Команда Назначение Процессор

FBLD источник Загрузить десятичное число в стек 8087

Преобразовывает BCD число из источника (80-битная переменная в памяти), помещает в вершину стека и уменьшает ТОР на 1.

Команда Назначение Процессор

FBSTP приемник Считать десятичное число из стека 8087

Преобразовывает число из вершины стека в 80-битное упакованное десятичное, записывает его в приемник (80-битная выталкивает это число из

стека (помечает ST(0) как пустой и увеличивает ТОР на один). Попытка записи

слишком большого числа, бесконечности или не-числа приводит к исключению «недопустимая операция» (и записи десятичной неопределенности, если IM = 1).

Команда__ Назначение_Процессор

РХСН источник Обменять местами два регистра стека 8087

Обмен местами содержимого регистра ST(0) и источника (регистр ЭТ(п)). Если операнд не указан, обменивается содержимое ST(0) и ST(1)..

Команда Назначение Процессор

FCMOVcc приемник,источник        Условная пересылка данных Р6

Это набор команд, каждая из которых копирует содержимое источника (ре­гистр ST(n))B приемник (только ST(0)),eCTH выполняется необходимое условие. Реально каждое условие соответствует тем или иным значениям флагов регистра FLAGS, но после команд

fcom      (или другие команды сравнения)

fstsw ах

sahf

в регистр FLAGS загружаются флаги СО, С1 и СЗ, и последующая команда из набора FCMOVcc приобретает смысл обработки результата предыдущего сравне­ния (см. табл. 13).

Таблица 13. Команды FCMOVcc

Команда

Значения флагов

Действие после РООМ

FCMOVE

ZF= 1

Если равно

FCMOVNE

ZF = O

Если не равно

FCMOVB

GF = 1

Если меньше

FCMOVBE

CF = І и ZF = І

Если меньше или равно

FCMOVNB

CF = O

Если не меньше

FCMOVNBE

CF = O и ZF = O

Если не меньше или равно

FCMOVU

PF= 1

Если несравнимы

FCMOVNU

PF = O

Если сравнимы

 

Команда

Назначение

Процессор