logo

Главная Система команд x86 Система команд FPU FPATAN

Система команд x86

Программирование - Архитектура и система команд микропроцессоров x86
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

FPATAN

Вычислить частичный арктангенс

Влияние команды на флаги и форматы команды:

IS

IA

D

Z

O

U

P

*

*

*

 

 

*

*

 

Код

Команда

Описание

Проц.

Пример

D9 F3

FPATAN

ST(1) = arctg(ST(1)/ST(0)), верхний элемент выталкивается из регистрового стека

8087

fpatan

Описание:

Команда FPATAN вычисляет арктангенс выражения ST(1)/ST(0) и возвращает выраженный в радианах результат в ST(1). Результат имеет тот же знак, что и операнд из ST(1), и абсолютное значение меньшее p.

Тот факт, что FPATAN принимает два аргумента и возвращает арктангенс их отношения, упрощает вычисление других тригонометрических функций (например, арксинуса). Команда FPATAN фактически в качестве входных значений принимает координаты точки (X, Y), где X — абсцисса, помещаемая в ST(0), а Y — ордината, помещаемая в ST(1). Возвращаемая величина представляет собой угол между осью абсцисс и прямой, проходящей через центр координат и заданную точку. Когда входное значение Y положительно, то и возвращаемый угол положителен, и наоборот, кода Y отрицательно, возвращаемый угол тоже отрицателен.

Флаги C0, C2, C3 регистра SW после выполнения команды неопределены, флаг C1 устанавливается равным 0 в случае возникновения стековой ошибки #IS, а также указывает направление округления в случае возникновения исключения #P (неточный результат): 0 – округление к меньшему, 1 – округление к большему.

В таблице 6.167. приведены значения, возвращаемые командой FPATAN для различных классов операндов.

Таблица 6.167. Значения, возвращаемые командой FPATAN для различных классов операндов

SRCDEST

-INF

-F

-0

+0

+F

+INF

NaN

-INF

-3π/4

-π/2

-π/2

-π/2

-π/2

-π/4

NaN

-F

-π...-π/2

-π/2

-π/2

-π/2…-0

-0

NaN

-0

-0

-0

-0

NaN

+0

+0

+0

+0

NaN

+F

+π…+π/2

+π/2

+π/2

+π/2…+0

+0

NaN

+INF

+3π/4

+π/2

+π/2

+π/2

+π/2

+π/4

NaN

NaN

NaN

NaN

NaN

NaN

NaN

NaN

NaN

               

F - Конечное вещественное значение

       

 

Исключение #IA возникает, если любой из операндов SNaN или представлен в неподдерживаемом формате. Заметьте, что исключения #IA не возникает, когда операндами команды являются нули и бесконечности, несмотря на то, что операции деления нуль на нуль и бесконечности на бесконечность в их самостоятельной форме вызывают появление исключения. Дело в том, что выдаваемые командой FPATAN вещественные результаты являются совершенно корректными при вычислении заданной функции в комплексной форме.

Операция:

ST(1) = arctan(ST(1) / ST);

Pop(ST);

Особые ситуации защищенного режима:

#NM, если CR0.EM = 1 или CR0.TS = 1.

Особые ситуации режима реальной адресации:

#NM, если CR0.EM = 1 или CR0.TS = 1.

Особые ситуации режима V86:

#NM, если CR0.EM = 1 или CR0.TS = 1.

Замечание:

Для процессоров  Intel387, Intel486, … никаких ограничений на диапазон принимаемых FPATAN аргументов не налагается. Для сопроцессоров Intel287 и 8087 существует ограничение 0|ST(0)|<|ST(1)|<+∞. Это не влияет на совместимость программного обеспечения и введено для расширения возможностей.


Входит в группу команд: Система команд FPU




Все права защищены © Алексей Ровдо, 1994-2023. Перепечатка возможна только по согласованию с владельцем авторских прав. admin@club155.ru

Top.Mail.Ru       Сервер радиолюбителей России - схемы, документация,

 соревнования, дипломы, программы, форумы и многое другое!   схемы новости электроники