Система команд x86 |
|
Программирование - Архитектура и система команд микропроцессоров x86 |
FSINCOS
Влияние команды на флаги и форматы команды:
* |
* |
* |
|
|
* |
* |
D9 FB |
FSINCOS |
Вычислить sin(ST(0)) и cos(ST(0)), заменить ST(0) на значение синуса и загрузить в регистровый стек значение косинуса |
Intel387 |
fsincos |
Описание:
Команда FSINCOS вычисляет sin(ST) и cos(ST), замещает содержимое ST значением sin(ST), а затем помещает в стек FPU значение cos(ST).
Значение в ST выражается в радианах и должно лежать в диапазоне |X| < 263.
Если операнд находится вне приемлемого диапазона, то устанавливается флаг C2, и ST остается неизмененным, исключения #IA не возникает. На программисте лежит ответственность за уменьшение операнда до абсолютного значения, меньшего чем 263. Это можно сделать путем вычитания соответствующего целочисленного значения, умноженного на 2p. Исключение #IA возникает, если операнд SNaN, ±∞ или представлен в неподдерживаемом формате.
Флаги C0, C3 регистра SW после выполнения команды неопределены, флаг C1 устанавливается равным 0 в случае возникновения стековой ошибки #IS, а также указывает направление округления в случае возникновения исключения #P (неточный результат): 0 – округление к меньшему, 1 – округление к большему, если C2=1, значение флага C1 неопределено.
Операция:
IF (Значение операнда лежит в пределах допустимого диапазона)
THEN
C2 = 0;
TEMP = cos(ST);
ST = sin(ST);
Декремент указателя вершины стека FPU;
ST = TEMP;
ELSE
C2 = 1
FI;
Все права защищены © Алексей Ровдо, 1994-2023. Перепечатка возможна только по согласованию с владельцем авторских прав. admin@club155.ru