Аппаратное обеспечение персонального компьютера



           

Команды сравнений чисел


В центральном процессоре команды условных переходов выполняются в соответствии с установкой отдельных битов регистра флагов процессора. В арифметическом сопроцессоре существуют специальные команды сравнений, по результатам выполнения которых устанавливаются биты кодов условий в регистре состояния:

Команда

Описание

FCOM

Сравнение

FICOM

Целочисленное сравнение

FCOMP

Сравнение и извлечение из стека

FICOMP

Целочисленное сравнение и извлечение из стека

FCOMPP

Сравнение и двойное извлечение из стека

FTST

Сравнение операнда с нулем

FXAM

Анализ операнда

Команда FCOM вычитает содержимое операнда, размещенного в оперативной памяти, из верхушки стека ST(0). Результат вычитания никуда не записывается и указатель верхушки стека ST не изменяется.

Обозначим операнд команды сравнения как "x". В следующей таблице приведем значения битов кодов условия после выполнения команды "FCOM x":

C3

C0

Условие

0

0

ST(0) > x

0

1

ST(0) < x

1

0

ST(0) = x

1

1

ST(0) и x не сравнимы

Последняя комбинация возникает при попытке сравнения нечисел, неопределенностей или бесконечностей, а также в некоторых других случаях.

Команда FICOM работает с 16- или 32-разрядными числами, в остальном она аналогична команде FCOM.

Команды FCOMP и FICOMP аналогичны, соответственно, командам FCOM и FICOM, за исключением того, что после выполнения операнд извлекается из стека.

Команда FCOMPP выполняет те же действия, что и FCOM, но она после выполнения извлекает из стека оба операнда, участвовавших в сравнении.

Для сравнения операнда с нулем предназначена команда FTST. После ее выполнения коды условий устанавливаются в соответствии со следующей таблицей:

C3

C0

Условие

0

0

ST(0) > 0

0

1

ST(0) < 0

1

0

ST(0) = 0

1

1

ST(0) и 0 не сравнимы

Команда FXAM анализирует содержимое ST(0). После ее выполнения устанавливаются коды условий, по которым можно судить о знаке числа, о его конечности или бесконечности, нормализованности и так далее.




Содержание  Назад  Вперед