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


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


Если один из операндов — бесконечность, результат — бесконечность соответствующего знака. Если оба операнда — бесконечности одного знака, результат не определен (происходит исключение «недопустимая операция»).

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

    Эти команды эквивалентны FSUB/FSUBP/FISUB во всем, кроме того, что они выполняют вычитание приемника из источника, а не источника из приемника.

  • Команда:
  • FMUL приемник,источник
  • Назначение:
  • Умножение вещественных чисел
  • Команда:
  • FMULP приемник,источник
  • Назначение:
  • Умножение с выталкиванием из стека
  • Команда:
  • FIMUL источник
  • Назначение:
  • Умножение целых чисел
  • Процессор:
  • 8087

    Выполняет умножение источника и приемника и помещает результат в приемник. Команда FMULP после этого выталкивает ST(0) из стека (помечает ST(0) как пустой и увеличивает ТОР на один). Так же как и остальные команды базовой арифметики, команды умножения могут принимать следующие формы:

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

  • Команда:
  • FDIV приемник,источник
  • Назначение:
  • Деление вещественных чисел
  • Команда:
  • FDIVP приемник,источник
  • Назначение:
  • Деление с выталкиванием из стека
  • Команда:
  • FIDIV источник
  • Назначение:
  • Деление целых чисел
  • Процессор:
  • 8087

    Выполняет деление приемника на источник и сохраняет результат в приемнике. Команда FDIVP после этого выталкивает ST(0) из стека (помечает ST(0) как пустой и увеличивает ТОР на один). Команды могут принимать следующие формы:




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