Банк рефератов содержит более 364 тысяч рефератов, курсовых и дипломных работ, шпаргалок и докладов по различным дисциплинам: истории, психологии, экономике, менеджменту, философии, праву, экологии. А также изложения, сочинения по литературе, отчеты по практике, топики по английскому.
Полнотекстовый поиск
Всего работ:
364139
Теги названий
Разделы
Авиация и космонавтика (304)
Административное право (123)
Арбитражный процесс (23)
Архитектура (113)
Астрология (4)
Астрономия (4814)
Банковское дело (5227)
Безопасность жизнедеятельности (2616)
Биографии (3423)
Биология (4214)
Биология и химия (1518)
Биржевое дело (68)
Ботаника и сельское хоз-во (2836)
Бухгалтерский учет и аудит (8269)
Валютные отношения (50)
Ветеринария (50)
Военная кафедра (762)
ГДЗ (2)
География (5275)
Геодезия (30)
Геология (1222)
Геополитика (43)
Государство и право (20403)
Гражданское право и процесс (465)
Делопроизводство (19)
Деньги и кредит (108)
ЕГЭ (173)
Естествознание (96)
Журналистика (899)
ЗНО (54)
Зоология (34)
Издательское дело и полиграфия (476)
Инвестиции (106)
Иностранный язык (62791)
Информатика (3562)
Информатика, программирование (6444)
Исторические личности (2165)
История (21319)
История техники (766)
Кибернетика (64)
Коммуникации и связь (3145)
Компьютерные науки (60)
Косметология (17)
Краеведение и этнография (588)
Краткое содержание произведений (1000)
Криминалистика (106)
Криминология (48)
Криптология (3)
Кулинария (1167)
Культура и искусство (8485)
Культурология (537)
Литература : зарубежная (2044)
Литература и русский язык (11657)
Логика (532)
Логистика (21)
Маркетинг (7985)
Математика (3721)
Медицина, здоровье (10549)
Медицинские науки (88)
Международное публичное право (58)
Международное частное право (36)
Международные отношения (2257)
Менеджмент (12491)
Металлургия (91)
Москвоведение (797)
Музыка (1338)
Муниципальное право (24)
Налоги, налогообложение (214)
Наука и техника (1141)
Начертательная геометрия (3)
Оккультизм и уфология (8)
Остальные рефераты (21692)
Педагогика (7850)
Политология (3801)
Право (682)
Право, юриспруденция (2881)
Предпринимательство (475)
Прикладные науки (1)
Промышленность, производство (7100)
Психология (8692)
психология, педагогика (4121)
Радиоэлектроника (443)
Реклама (952)
Религия и мифология (2967)
Риторика (23)
Сексология (748)
Социология (4876)
Статистика (95)
Страхование (107)
Строительные науки (7)
Строительство (2004)
Схемотехника (15)
Таможенная система (663)
Теория государства и права (240)
Теория организации (39)
Теплотехника (25)
Технология (624)
Товароведение (16)
Транспорт (2652)
Трудовое право (136)
Туризм (90)
Уголовное право и процесс (406)
Управление (95)
Управленческие науки (24)
Физика (3462)
Физкультура и спорт (4482)
Философия (7216)
Финансовые науки (4592)
Финансы (5386)
Фотография (3)
Химия (2244)
Хозяйственное право (23)
Цифровые устройства (29)
Экологическое право (35)
Экология (4517)
Экономика (20644)
Экономико-математическое моделирование (666)
Экономическая география (119)
Экономическая теория (2573)
Этика (889)
Юриспруденция (288)
Языковедение (148)
Языкознание, филология (1140)

Контрольная работа: Дополнительные арифметические команды

Название: Дополнительные арифметические команды
Раздел: Рефераты по информатике
Тип: контрольная работа Добавлен 22:47:21 25 ноября 2010 Похожие работы
Просмотров: 5 Комментариев: 20 Оценило: 2 человек Средний балл: 5 Оценка: неизвестно     Скачать

Контрольная работа по теме:

ДОПОЛНИТЕЛЬНЫЕ АРИФМЕТИЧЕСКИЕ КОМАНДЫ


Введение

Дополнительные арифметические команды без явных операндов выполняют действия над содержимым вершины стека, результат помещают туда же БЕЗ МОДИФИКАЦИИ УКАЗАТЕЛЯ СТЕКА.

- FABS – нахождение абсолютной величины.

- FCHS – изменение знака операнда.

- FRNDINT – округление операнда до целого в формате с плавающей точкой.

- FSQRT – извлечение квадратного корня.

- FPREM – вычисляет остаток от деления содержимого ST(0) на число из ST(1). Остаток замещает число в ST(0).

- FSCALE – масштабирование на степень числа 2 – прибавляет целое число из ST(1) к порядку в регистре ST(0), т.е. умножает (или делит) ST(0) на число 2(ST(1)) . Эту команду можно использовать для возведения числа 2 в целую степень (положительную или отрицательную).

- FXTRACT – разлагает содержимое ST(0) на два числа: несмещенный порядок (замещает старое значение в ST(0)) и знаковую мантиссу (включаемую сверху, т.е. в ST(7)).

Команда FSCALE, находящаяся после команды FXTRACT, восстанавливает исходное число.

Все дополнительные арифметические команды группируются в три группы:

- команды сравнений:

- трансцендентные команды;

- команды управления сопроцессора х87.


1. КОМАНДЫ СРАВНЕНИЙ

Команды сравнений включают:

- FCOM ST(i)/mem – сравнивает содержимое ST(0) с операндом "x" (в численном регистре или в памяти), т.е. производит вычитание операндов без запоминания результата и устанавливает коды условий в регистре состояния (таблица 1).

Таблица 1 – Коды условий после сравнения

С3 С0 Условие

0

0

1

1

0

1

0

1

ST(0) > x

ST(0) < x

ST(0) = x

ST(0) и x – несравнимы

- FICOM mem – сравнивает содержи мое вершины стека ST(0) с целым числом в памяти.

- FCOMPST(i)/mem – аналогична команде FCOM, но после сравнения производит извлечение операнда из вершины стека.

- FCOMPP ST(i) – сравнивает ST(0) c ST(i) и извлекает из стека оба операнда.

- FTST – сравнивает вершину стека с нулем.

- FXAM – сравнивает вершину стека с нулем, но выставляет 4 флага условий (в частности, определяется ненормализованная мантисса, бесконечность, нечисло и др.).

- FCOMIST(0),ST(i) – сравнение вещественных чисел и установка флагов в EFLAGS (P6+).

- FCOMIР ST(0),ST(i) – сравнение вещественных чисел и установка флагов в EFLAGSи извлечение операнда из вершины стека (P6+).

Флаги условий (С0, С3) сопроцессора х87 используются для организации условных переходов микропроцессором х86. Для этого командой – FSTSW AX – содержимое регистра состояния х87 копируется в аккумулятор АХ микропроцессора х86. После этого командой – SAHF – старший байт аккумулятора (АН) передается в младший байт регистра флагов. При этом условию С0 соответствует флаг СF, а условию С3 - флаг ZF.

2. ТРАНСЦЕНДЕНТНЫЕ КОМАНДЫ

К элементарным трансцендентным функциям относятся:

- тригонометрические функции (sin, cos, tg и др.),

- обратные тригонометрические функции (arcsin, arctg и др.),

- логарифмические функции (log2 (x), log10 (x), loge (x)),

- показательные функции (xy , 2x , 10x , ex ),

- гиперболические функции (sh, ch, th и др.),

- обратные гиперболические функции (arsh, arch, arth и др.).

Таблица 2 – Трансцендентные команды

Мнемоника Описание команды Вычисляемая функция
FPTAN Частичный тангенс ST(1) / ST(0) = tg (ST(0))
FSIN Синус(387+) ST(0) = sin (ST(0))
FCOS Косинус (387+) ST(0) = cos (ST(0))
FSINCOS Синус, косинус (387+)

ST(7) = sin (ST(0));

ST(0) = cos (ST(0))

FPATAN Частичный арктангенс ST(0) = arctg (ST(1)/ST(0)
FYL2X Двоичный логарифм ST(0) = ST(1) * log2 (ST(0))
FYL2XP1 Двоичный логарифм ST(0) = ST(1) * log2 (ST(0)+1)
F2XM1 Показательная функция ST(0) = 2( ST (0)) – 1

Сопроцессор х87 вычисляет любую из элементарных трансцендентных функций от аргументов двойной точности, давая результат двойной точности с ошибкой младшего разряда округления. Аргументы трансцендентных команд должны быть нормализованными.

Команда FPTAN нахождения частичного тангенса в качестве результата выдает два числа (сопроцессоры 87/287):


y / x = tg (ST(0)).

Число «y» заменяет старое содержимое ST(0), а число «x» включается сверху. Поэтому, после выполнения команды указатель стека уменьшится на 1, число «х» будет записано в новую вершину стека ST(0), а число «y» – в регистр ST(1).

Для получения значения тангенса необходимо выполнить команду FDIV. Две команды FPTAN и FDIV выбирают аргумент из вершины стека и туда же помещают значение тангенса (БЕЗ МОДИФИКАЦИИ УКАЗАТЕЛЯ ВЕРШИНЫ СТЕКА). Две команды FPTAN и FDIVR вычисляют значение котангенса.

Для команды FPTAN аргумент задается в радианах и должен находится в диапазоне (сопроцессоры 87/287):

0 <= ST(0) <= 1/4.

Для СОПРОЦЕССОРОВ 387+ аргумент команды FPTAN (в радианах) может быть любым:

–263 <= ST(0) <= +264 .

Значение тангенса исходного угла tg(ST(0)) замещает аргумент и в стек включается сверху 1,0 (для программной совместимости с предыдущими сопроцессорами 87/287).

Значения остальных тригонометрических функций (для сопроцессоров 87/287) можно вычислить, используя формулы тангенса половинного угла (табл. 3). Поэтому перед началом вычисления тригонометрических функций с использованием команды FPTAN необходимо аргумент в ST(0) поделить на 2. Новое значение аргумента «z» должно также удовлетворять условию: 0 £ z £ 1/4.


Таблица 3 – Формулы для вычисления тригонометрических функций

3. команды управления сопроцессора х87

В СОПРОЦЕССОРАХ 387+ появились новые команды:

- FSIN – вычисление синуса;

- FCOS – вычисление косинуса;

- FSINCOS – вычисление синуса и косинуса.

Все они воспринимают в ST(0) исходный угол, измеряемый в радианах и находящийся в диапазоне: –263 <= ST(0) <= +263 . Команды FSIN и FCOS возвращают результат на место аргумента, а команда FSINCOS возвращает значение синуса на место аргумента и включает значение косинуса в стек.

Команда FPATAN вычисляет arctg (ST(1)/ST(0)). Два операнда извлекаются из стека, а результат включается в стек. Поэтому окончательно, УКАЗАТЕЛЬ СТЕКА УВЕЛИЧИВАЕТСЯ НА 1. Операнды этой команды для сопроцессоров 8087/287 должны удовлетворять условию:

0 < ST(1) < ST(0).

В сопроцессорах 387+ ограничений на диапазон допустимых аргументов команды FPATAN не существует.

Для вычисления остальных обратных тригонометрических функций по аргументу «z» необходимо предварительно подготовить операнды в ST(0) и ST(1) в соответствии с табл. 4 (делить операнды не нужно).


Таблица 4 – Формулы для вычисления обратных тригонометрических функций

←ST(1)

←ST(0)

←ST(1)

←ST(0)

←ST(1)

←ST(0)

←ST(1)

←ST(0)

←ST(1)

←ST(0)

←ST(1)

←ST(0)

Команда FYL2X вычисляет функцию: ST(1) * log2 ST(0). Два операнда извлекаются из стека, а затем результат включается в стек. Поэтому УКАЗАТЕЛЬ СТЕКА УВЕЛИЧИТСЯ НА 1. В команде требуется удовлетворение естественного для логарифмической функции условия:

ST(0) > 0.

Значения других логарифмических функций вычисляются по формулам в табл. 5 с загрузкой в регистр ST(1) необходимых констант командами: FLDLN2 и FLDLG2.

Таблица 5 - Формулы для вычисления логарифмических функций

log2 (x) ® FLD1; FLD x; FYL2X;

ln (x) = ln (2) * log2 (x) ® FLDLN2; FLD x; FYL2X;

lg (x) = lg (2) * log2 (x) ® FLDLG2; FLD x; FYL2X.


Еще одна логарифмическая команда FYL2XP1 вычисляет функцию: ST(1) * log2 (ST(0) + 1). Причина появления этой команды заключается в получении более высокой точности вычисления функции: log(1 + x). Эта функция часто встречается в финансовых расчетах, а также при вычислении обратных гиперболических функций.

Команда показательной функции F2XM1 вычисляет:

F2XM1 [ST(0)] = 2(ST(0)) – 1.

Аргумент показательной функции должен находится в диапазоне: для сопроцессоров 87/287: 0 <= ST(0) <= 0.5;

для сопроцессоров 387+: –1 <= ST(0) <= +1.

Вычисление функции 2х – 1 вместо функции 2х позволяет избежать потери точности, когда аргумент «х» близок к 0 (а значение функции 2х близко к 1). Остальные показательные функции вычисляются по формулам в табл. 6.

Таблица 6 – Формулы для вычисления показательных функций

2x = [2x – 1] + 1 = F2XM1 (x) + 1;

ex = 1 + [2(x * log2(e)) – 1] = 1 + F2XM1 (x * log2 (e));

10x = 1 + [2(x * log2(10)) – 1] = 1 + F2XM1 (x * log2 (10));

аx = 1 + [2(x * log2( а )) – 1] = 1 + F2XM1 (x * log2 (a)).

Таблица 7 – Формулы для вычисления гиперболических функций

Cинус гиперболический
Косинус гиперболический
Тангенс гиперболический
Котангенс гиперболический
Косеканс гиперболический
Секанс гиперболический

Таблица 8 – Формулы для вычисления обратных гиперболических функций

где:

где:

где:

КОМАНДЫ УПРАВЛЕНИЯ СОПРОЦЕССОРОМ х87

Команды управления сопроцессором х87 обеспечивают доступ к нечисловым регистрам. Мнемоники, которые начинаются с FN, соответствуют командам «БЕЗ ОЖИДАНИЯ», т.е. процессор х86 передает их для выполнения в сопроцессор х87, не проверяя занятость сопроцессора и игнорируя численные особые случаи.

Мнемоники без буквы «N» соответствуют командам «С ОЖИДАНИЕМ», т.е. заставляют процессор х86 реагировать на незамаскированные особые случаи и ожидать завершения выполнения команд в сопроцессоре х87. В общем случае, программистам рекомендуется избегать форм команд «без ожидания».

- Команда – FNSTCW mem (FSTCW mem) – передает содержимое регистра управления (CW) в ячейку памяти.

- Команда – FLDCW mem – загружает регистр управления (CW) из ячейки памяти. Эти две команды применяются для изменения режима работы сопроцессора х87.

- Команда – FNSTSW mem (FSTSW mem) – передает содержимое регистра состояния (SW) сопроцессора х87 в ячейку памяти.

- Команда – FNSTSW AX (FSTSW AX) – передает содержимое регистра состояния (SW) сопроцессора в регистр AX микропроцессора х86.

- Команда – FNCLEX (FCLEX) – сбрасывает в регистре состояния сопроцессора флаги особых случаев, а также биты ES и BUSY. Эти флаги не сбрасываются аппаратно и должны явно сбрасываться программистом.

- Команда – FNINIT (FINIT) – инициализирует регистры управления, состояния и тэгов на значения, приведенные в табл. 9. Такое же действие производит аппаратный сигнал сброса – RESET.

Таблица 9 – Инициализация сопроцессора х87

Регистр Выбор Режим работы
Регистр управления (Режим бесконечности)

Проективный – (287)

Афинный – (387+)

Режим округления Округление к ближайшему
Точность Расширенная
Все особые случаи Замаскированы

Регистр

Состояния

Бит занятости В = 0: Не занят
Код условия Не определен
Указатель стека TOP = 000
Бит суммарной ошибки ES = 0
Регистр тэгов Все тэги показывают – "пустой"
Оценить/Добавить комментарий
Имя
Оценка
Комментарии:
Хватит париться. На сайте FAST-REFERAT.RU вам сделают любой реферат, курсовую или дипломную. Сам пользуюсь, и вам советую!
Никита21:48:17 04 ноября 2021
.
.21:48:16 04 ноября 2021
.
.21:48:14 04 ноября 2021
.
.21:48:13 04 ноября 2021
.
.21:48:11 04 ноября 2021

Смотреть все комментарии (20)
Работы, похожие на Контрольная работа: Дополнительные арифметические команды

Назад
Меню
Главная
Рефераты
Благодарности
Опрос
Станете ли вы заказывать работу за деньги, если не найдете ее в Интернете?

Да, в любом случае.
Да, но только в случае крайней необходимости.
Возможно, в зависимости от цены.
Нет, напишу его сам.
Нет, забью.



Результаты(290469)
Комментарии (4189)
Copyright © 2005-2021 HEKIMA.RU [email protected] реклама на сайте