Assembler - язык неограниченных возможностей


Команды сравнения FPU - часть 2


/p>

Эти команды сравнивают содержимое регистра ST(0) и источника (16- или 32-битная переменная), причем считается, что источник содержит целое число. В остальном действие FICOM/FICOMP полностью эквивалентно FCOM/FCOMP.

  • Команда:
  • FCOMI источник
  • Назначение:
  • Сравнить и установить EFLAGS
  • Команда:
  • FCOMIP источник
  • Назначение:
  • Сравнить, установить EFLAGS и вытолкнуть
  • Команда:
  • FUCOMI источник
  • Назначение:
  • Сравнить без учета порядков и установить EFLAGS
  • Команда:
  • FUCOMIP источник
  • Назначение:
  • Сравнить без учета порядков, установить EFLAGS и вытолкнуть из стека
  • Процессор:
  • P6

    Выполняет сравнение регистра ST(0) и источника (регистр ST(n)) и устанавливает флаги регистра EFLAGS соответственно таблице 15.


    Таблица 15. Флаги после соманд FCOMI


    Условие ZF PF CF
    ST(0) > источник 0 0 0
    ST(0) < источник 0 0 1
    ST(0) = источник 1 0 0
    Не сравнимы 1 1 1


    Эти команды эквивалентны командам FCOM/FCOMP/FUCOM/FUCOMP, вслед за которыми исполняются FSMSW АХ и SAHF, но они не изменяют содержимого регистра АХ и выполняются быстрее.

  • Команда:
  • FTST
  • Назначение:
  • Проверить, не содержит ли SP(0) ноль
  • Процессор:
  • 8087

    Сравнивает содержимое ST(0) с нулем и выставляет флаги С3, С2 и С0 аналогично другим командам сравнения.

  • Команда:
  • FXAM
  • Назначение:
  • Проанализировать содержимое ST(0)
  • Процессор:
  • 8087

    Устанавливает флаги С3, С2 и С0 в зависимости от типа числа, находящегося в ST(0), в соответствии с правилами, приведенными в таблице 16.

    Флаг С1 устанавливается равным знаку числа в ST(0) независимо от типа числа (на самом деле он устанавливается, даже если регистр помечен как пустой).


    Таблица 16. Результаты действия команды FXAM


    Тип числа C3 C2 C0
    Неподдерживаемое 0 0 0
    Не-число 0 0 1
    Нормальное конечное число 0 1 0
    Бесконечность 0 1 1
    Ноль 1 0 0
    Регистр пуст 1 0 1
    Денормализованное число 1 1 0





    - Начало -  - Назад -  - Вперед -



    Книжный магазин