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


Команды сравнения FPU


  • Команда:
  • FCOM источник
  • Назначение:
  • Сравнить вещественные числа
  • Команда:
  • FCOMP источник
  • Назначение:
  • Сравнить и вытолкнуть из стека
  • Команда:
  • FCOMPP источник
  • Назначение:
  • Сравнить и вытолкнуть из стека два числа
  • Процессор:
  • 8087

    Команды выполняют сравнение содержимого регистра ST(0) с источником (32- или 64-битная переменная или регистр ST(n), если операнд не указан — ST(1)) и устанавливают флаги С0, С2 и С3 в соответствии с таблицей 14.


    Таблица 14. Флаги сравнения FPU


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


    Если один из операндов — не-число или неподдерживаемое число, происходит исключение «недопустимая операция», а если оно замаскировано (флаг IM = 1), все три флага устанавливаются в 1. После команд сравнения с помощью команд FSTSW и SAHF можно перевести флаги С3, С2 и С0 в соответственно ZF, PF и CF, после чего все условные команды (Jcc, CMOVcc, FCMOVcc, SETcc) могут использовать результат сравнения, как после команды СМР.

    Команда FCOMP после выполнения сравнения выталкивает из стека содержимое ST(0) (помечает его как пустой и увеличивает ТОР на 1), а команда FCOMPP выталкивает из стека и ST(0), и ST(1).

  • Команда:
  • FUCOM источник
  • Назначение:
  • Сравнить вещественные числа без учета порядков
  • Команда:
  • FUCOMP источник
  • Назначение:
  • Сравнить без учета порядков и вытолкнуть из стека
  • Команда:
  • FUCOMPP источник
  • Назначение:
  • Сравнить без учета порядков и вытолкнуть из стека два числа
  • Процессор:
  • 80387

    Эти команды аналогичны FCOM/FCOMP/FCOMPP во всем, кроме того, что в роли источника могут выступать только регистры ST(n), и если один из операндов — QNAN («тихое» не-число), флаги С3, С2, С0 устанавливаются в единицы, но исключение «недопустимая операция» не вызывается. Если один из операндов — SNAN или неподдерживаемое число, эти команды ведут себя так же, как и обычное сравнение.

  • Команда:
  • FICOM источник
  • Назначение:
  • Сравнить целые числа
  • Команда:
  • FICOMP источник
  • Назначение:
  • Сравнить целые и вытолкнуть из стека
  • Процессор:
  • 8087
    <


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