Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Учитывая знак заданного числа (0 — положительное; 1 — отрицательное), выписать его представление в памяти эвм.

Поиск

6. Блок-схема виведення на екран дійсного числа, що зберігається у регістрі ST(0) сопроцесору у форматі -?,*********Е+*. Команда FRNDINT. Використання команди FRNDINT.

Блок-схема вывода на экран вещественного числа, которое хранится в регистре ST(0) сопроцессора.

 

 


 Команда: FRNDINT
 Назначение: Округлить до целого

Округляет значение ST(0) до целого числа в соответствии с режимом округления, заданным битами RC.

 

Команда FRNDINT округляет значение в ST к целому согласно установки поля режима округления RC в управляющем слове FPU.

Если входное значение в ST равно ±∞, то оно не изменяется. Если входное значение в ST не целое, то при преобразовании возникает ошибка #P.

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

Исключение #IA возникает, если входной операнд SNaN или представлен в неподдерживаемом формате.

После установки способа округления команда FRNDINT округляет

показатель степени E до целого значения

7. Трансцендентні операції FPU. Алгоритм обчислення виразу sin(cos(x)), де х- дійсне число. Команда FYL2XP1, призначення.

Трансцендентные операции FPU

 Команда: FSIN
 Назначение: Синус
 Процессор:  

Вычисляет синус числа, находящегося в ST(0), и сохраняет результат в этом же регистре. Операнд считается заданным в радианах и не может быть больше 263 или меньше -263 (можно воспользоваться FPREM с делителем 2 , если операнд слишком велик). Если операнд выходит за эти пределы, флаг С2 устанавливается в 1 и значение ST(0) не изменяется.

 Команда: FCOS
 Назначение: Косинус
 Процессор:  

Вычисляет косинус числа, находящегося в ST(0), и сохраняет результат в этом же регистре. Операнд считается заданным в радианах и не может быть больше 263 или меньше -263 (так же, как и в случае синуса, можно воспользоваться FPREM с делителем 2 , если операнд слишком велик). Если операнд выходит за эти пределы, флаг С2 устанавливается в 1 и значение ST(0) не изменяется.

 Команда: FSINCOS
 Назначение: Синус и косинус
 Процессор:  

Вычисляет синус и косинус числа, находящегося в ST(0), помещает синус в ST(0) и затем помещает косинус в стек (так что синус оказывается в ST(1), косинус — в ST(0), и ТОР уменьшается на 1). Операнд считается заданным в радианах и не может быть больше 263 или меньше -263. Если операнд выходит за эти пределы, флаг С2 устанавливается в 1 и значение ST(0) и стек не изменяются.

 Команда: FPTAN
 Назначение: Тангенс
 Процессор:  

Вычисляет тангенс числа, находящегося в регистре ST(0), заменяет его на вычисленное значение и затем помещает 1 в стек, так что результат оказывается в ST(1), ST(0) содержит 1, а ТОР уменьшается на единицу. Как и для остальных тригонометрических команд, операнд считается заданным в радианах и не может быть больше 263 или меньше -263. Если операнд выходит за эти пределы, флаг С2 устанавливается в 1 и значение ST(0) и стек не изменяются. Единица помещается в стек для того, чтобы можно было получить котангенс вызовом команды FDIVR сразу после FPTAN.

 Команда: FPATAN
 Назначение: Арктангенс
 Процессор:  

Вычисляет арктангенс числа, получаемого при делении ST(1) на ST(0), сохраняет результат в ST(1) и выталкивает ST(0) из стека (помечает ST(0) как пустой и увеличивает TOP на 1). Рeзyльтaт всегда имеет тот же знак, что и ST(1), и меньше по абсолютной величине. Смысл этой операции в том, что FPATAN вычисляет угол между осью абсцисс и линией, проведенной из центра координат в точку ST(1),ST(0).

FPATAN может выполняться над любыми операндами (кроме не-чисел), давая результаты для различных нулей и бесконечностей, определенные в соответствии со стандартом IEEE (как показано в табл. 17).

 

FYL2XP1

 

од Команда Описание Проц. Пример
D9 F9 FYL2XP1 ST(1) = ST(1) * log2(ST(0)+1.0), верхний элемент выталкивается из регистрового стека   fyl2xp1


Операция:

ST(1) = ST(1) * log2(ST + 1.0);

Pop(ST);


Описание:

Команда FYL2XP1 вычисляет ST(1) * log2(ST + 1), помещает результирующее значение в ST(1) и выталкивает из регистрового стека верхний элемент ST.

Исходный операнд в ST должен иметь значение в диапазоне: (sqrt(2)/2) ‑ 1  ST  1 ‑ sqrt(2)/2. Исходный операнд в ST(1) может принимать значения от -∞ до +∞.

Если операнд в ST находится вне приемлемого диапазона, то результат FYL2XP1 неопределен. Это касается и различных исключений, которые могут возникать, а могут и не возникать, когда операнд в ST не находится в диапазоне разрешенных значений.

В таблице 6.200. приведены возвращаемые командой FYL2XP1 значения для различных классов операндов, а также случаи, когда возникает исключение #IA.

Таблица 6.200. Значения, возвращаемые командой FYL 2 XP 1 для различных классов операндов

ST(1)\ST(0) от -(1-sqrt(2)/2) до -0 -0 +0 от +0 до +(1-sqrt(2)/2) NaN
-INF +INF #IA #IA -INF NaN
-F +F +0 -0 -F NaN
-0 +0 +0 -0 -0 NaN
+0 -0 -0 +0 +0 NaN
+F -F -0 +0 +F NaN
+INF -INF #IA #IA +INF NaN
NaN NaN NaN NaN NaN NaN
           
F - Конечное вещественное значение      

 

Исключение #IA возникает также, если любой из операндов SNaN или представлен в неподдерживаемом формате.

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

Команда FYL2XP1 обеспечивает более высокую точность, чем FYL2X при вычислении логарифмов велчин близких к 1. Когда  мало (— величина, логарифм которой необходимо найти, минус единица), большее количество значащих цифр может быть вычислено при применении  в качестве аргумента FYL2XP1, нежели чем при применении 1 +  в качестве аргумента FYL2X.

Білет № 8

1. Алгоритм виводу ВСD чисел на екран в двійковій системі числення. Приклад виведення 32-ух бітного ВСD-числа на екран. Команда FYL2X. Приклади використання команди FYL2X.

 Команда: FYL2X
 Назначение: Вычисление y*log2(x);

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

FYL2X формирует число Z = Ylog2X. Исходное значение аргумента X должно храниться в текущем регистре стека, а аргумента Y - в первом. После выполнения команды FYL2X число Z записывается в первый регистр стека, а содержимое текущего регистра выталкивается из стека. Область существования функции 0 < X < и -оо <Y<oo. Исходные значения аргументов команды не проверяются на принадлежность к этой области. Команда FYL2X проверяет наличие особого случая - "точность

9.



Поделиться:


Последнее изменение этой страницы: 2016-09-13; просмотров: 278; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.119.122.69 (0.007 с.)