10.6 Команды трансцендентных функций
10. 6 Команды трансцендентных функций Команды трансцендентных функций позволяют вычислять значения таких функций как тангенс, арктангенс и некоторых других. Все команды трансцендентных функций требуют в качестве операндов регистры стека сопроцессора. Результаты вычислений также заносятся в регистры стека сопроцессора.
Команда FPATAN Команда FPATAN вычисляет значение арктангенса. При этом вычисляется значение арктангенса частного значений регистров ST(1) и ST(0). Результат заносится в регистр ST(1), после чего из стека выталкивается операнд. Таким образом, после выполнения команды FPATAN в регистре ST(0) оказывается вычисленное значение арктангенса. Результат выполнения команды FPATAN имеет знак операнда в регистре ST(1) и по модулю не превосходит числа p. Пример использования команды FPATAN: X DQ 2. 0 ; определение числа X Y DQ 1. 0 ; определение числа Y . . . FLD X ; загрузка числа X FLD Y ; загрузка числа Y FPATAN ; ST(0): = atan(X / Y)
Команда FPTAN Команда FPTAN вычисляет значение тангенса. Операндом является регистр ST(0). Результат вычисления тангенса записывается в регистр ST(0) и в стек заносится 1. Таким образом, после выполнения команды FPTAN в регистре ST(0) оказывается 1, а в регистре ST(1) – вычисленное значение тангенса. Операнд команды должен быть в пределах от –263 до +263. Пример использования команды FPTAN:
X DD 1. 0 ; определение числа X . . . FLD X ; загрузка числа X FPTAN ; ST(0): = 1, ST(1): = tan(X)
Команда F2XM1 Команда F2XM1 вычисляет значение функции 2x – 1. Операндом является регистр ST(0). Результат вычисления значения функции заносится в регистр ST(0). Значение операнда должно быть в пределах от –1. 0 до +1. 0, в противном случае результат выполнения команды будет иметь неопределенное значение.
Пример использования команды F2XM1: X DQ 0. 5 ; определение числа X . . . FLD X ; загрузка числа X F2XM1 ; ST(0): = 2X-1
Команда FYL2X Команда FYL2X вычисляет значение функции y * log2(x). Операндом y является регистр ST(1), а операндом x – ST(0). Результат вычисления значения функции заносится в регистр ST(1), после чего из стека выталкивается операнд. Таким образом, после выполнения команды FYL2X в регистре ST(0) оказывается вычисленное значение функции. Операнд ST(0) должен быть положительным ненулевым числом. Пример использования команды FYL2X: X DQ 4. 0 ; определение числа X Y DQ 2. 0 ; определение числа Y . . . FLD X ; загрузка числа X FLD Y ; загрузка числа Y FYL2X ; ST(0): = Y * log2(X)
Команда FYLPXP1 Команда FYL2XP1 вычисляет значение функции y * log2(x + 1). Операндом y является регистр ST(1), а операндом x – ST(0). Результат вычисления значения функции заносится в регистр ST(1), после чего из стека выталкивается операнд. Таким образом, после выполнения команды FYL2XP1 в регистре ST(0) оказывается вычисленное значение функции. Операнд ST(0) должен быть положительным ненулевым числом. Пример использования команды FYL2X P1: X DD 32. 0 ; определение числа X Y DD 0. 5 ; определение числа Y . . . FLD X ; загрузка числа X FLD Y ; загрузка числа Y FYL2X ; ST(0): = Y * log2(X + 1)
10. 7 Команды сравнения данных Команды сравнения данных позволяют сравнивать между собой значения регистров стека сопроцессора и операндов из памяти. Результаты сравнения определяются флагами условий C0, C2 и C3. Все команды сравнения выполняют сравнение значений регистра ST(0) и какого-либо другого регистра или ячейки памяти. Значения флагов условий C0, C2 и C3 в зависимости от результатов сравнения представлены в табл. 16.
Таблица 16 Интерпретация значений флагов условий
SRC – это второй операнд, с которым производится сравнение. Им может быть регистр стека сопроцессора или ячейка памяти. Особым случаем является сравнение операндов, один из которых является нечисловым значением NaN или не может быть сравнен с другим операндом. Если флаг IM сброшен, то флаги условий при возникновении особого случая не устанавливаются. В табл. 17 представлены команды сравнения данных сопроцессора.
Таблица 17 Команды сравнения данных сопроцессора
Примеры использования команд сравнения данных сопроцессора: X DD 1. 0 ; определение числа X Y DD 1. 01 ; определение числа Y . . . FLD X ; загрузка числа X FLD Y ; загрузка числа Y FCOM ; сравнение ST(0) и ST(1) . . . FLD X ; загрузка числа X FCOMP Y ; сравнение ST(0) и Y . . . FLD Y ; загрузка числа Y FTST ; сравнение Y с 0. 0 . . . FLD X ; загрузка числа X FLD Y ; загрузка числа Y FCOMPP ; сравнение X и Y 10. 8 Команды управления сопроцессором Команды управления сопроцессором позволяют выполнять инициализацию сопроцессора, сохранение значения регистра состояния и загрузку регистра управления сопроцессора, а также выполнять сохранение значений всех регистров сопроцессора в памяти и загрузку этих значений из памяти.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|