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


Базовая арифметика FPU - часть 3


  • FDIV источник, когда источником является 32- или 64-битная переменная, содержащая вещественное число, а приемником — ST(0);
  • FDIV ST(0),ST(n), FDIV ST(n),ST(0), FDIVP ST(n),ST(0), когда источник и приемник заданы явно в виде регистров FPU;
  • FDIV без операндов — эквивалентно FDIV ST(0),ST(1); FDIVP без операндов — эквивалентно FDIVP ST(1),ST(0);
  • FIDIV источник, когда источником является 16- или 32-битная переменная, содержащая целое число, а приемником — ST(0).

При делении бесконечности на ноль (так же как и на любое число) результат — бесконечность, при делении нуля на бесконечность (так же как и на любое число) результат — ноль. При делении на ноль нормального числа происходит исключение деления на ноль, а если флаг ZM = 1, в качестве результата записывается бесконечность соответствующего знака.

  • Команда:
  • FDIVR приемник,источник
  • Назначение:
  • Обратное деление вещественных чисел
  • Команда:
  • FDIVRP приемник,источник
  • Назначение:
  • Обратное деление с выталкиванием
  • Команда:
  • FIDIVR источник
  • Назначение:
  • Обратное деление целых чисел
  • Процессор:
  • 8087

    Эти команды эквивалентны FDIV/FDIVP/FIDIV во всем, кроме того, что они выполняют деление источника на приемник, а не приемника на источник.

  • Команда:
  • FPREM
  • Назначение:
  • Найти частичный остаток от деления
  • Процессор:
  • 8087
  • Команда:
  • FPREM1
  • Назначение:
  • Найти частичный остаток в стандарте IEEE
  • Процессор:
  • 80387

    Эти команды выполняют деление ST(0) на ST(1) и помещают остаток от деления в ST(0). Деление осуществляется при помощи последовательных вычитаний ST(1) из ST(0), но за один раз выполняется не более 64 таких вычитаний. Если ST(0) не стал меньше ST(1) за это время, говорят, что в ST(0) находится частичный остаток от деления. Если был получен точный остаток, флаг С2 сбрасывается в 0, если частичный — устанавливается в 1, так что можно повторять эту команду до обнуления С2. Если вычисление привело к точному остатку, три младших бита частного (то есть числа потребовавшихся вычитаний) сохраняются в С0, С3, С1 (биты 2, 1, 0 соответственно). Например, используя FPREM1, можно уменьшить аргумент тангенса, вычислив его остаток от деления на

    /4, тогда потребуются младшие три бита частного, чтобы определить, не поменялся ли при этой операции знак тангенса.




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