и не только четыре основных
0046 9B D8 F2 FDIV ST(0),ST(2)
0049 9B DA 36 0000 R FIDIV SHORT_INTEGER
004E 9B DE FA FDIVP ST(2),ST(0)
0051 9B D8 FA FDIVR st(0),ST(2)
0054 9B DE 3E 0000 R FIDIVR WORD_INTEGER
0059 9B DE F2 FDIVRP ST(2),ST(0)
005C CODE ENDS
END
Фиг. 7.16 Арифметические команды сопроцессора 8087
вычислительные операции, и не только четыре основных действия -
сложение, вычитание, умножение и деление, но также трансцендентные
и тригонометрические функции.
На Фиг. 7.16 показан ассемблерный листинг программы, состоящей
из некоторых команд для выполнения основных четырех действий.
Данный пример иллюстрирует только работу команды FADD, во всех
возможных комбинациях. Прежде чем рассматривать команды, разберем
возможные варианты их работы. Как видно из Фиг. 7.17, существует
пять различных методов выполнения арифметических команд. На
Фиг. 7.17а показаны пять способов использования данных в
арифметических командах. В случае 1 указывается только код
операции команды. В операции принимают участие вершина стека и
элемент ST1, а результат замещает вершину стека. Заметим, что на
Фиг. 7.17а приведены примеры для каждого случая с использованием
команды сложения. На рисунке также показаны схемы выполнения
вычислительных операций.
Случай 2 иллюстрирует операцию, выполняемую с двумя регистрами
стека сопроцессора 8087. Одним из этих регистров должна быть
вершина стека. Если вершина стека - приемник результата, ее можно
не упоминать, указав только регистр источника. Если же приемником
результата служит какой=то другой регистр, нужно указывать и
источник, и приемник.
Форма команды Пример FADD Действие
Содержание Назад Вперед