Программирование арифметических операций над числами с плавающей запятой
Лабораторная работа
в среде программирования VAX-11
Среда программирования: VAX-11
Название работы: Программирование арифметических операций над числами с плавающей запятой
Вид работы: Лабораторная работа
Описание: Лабораторная работа 4
ПРОГРАММИРОВАНИЕ АРИФМЕТИЧЕСКИХ ОПЕРАЦИЙ
НАД ЧИСЛАМИ С ПЛАВАЮЩЕЙ ЗАПЯТОЙ
Цель работы: отработка алгоритмов выполнения арифметических операций над числами с плавающей запятой.
Методические указания
Выполнение операций над числами с плавающей запятой может быть разбито на несколько этапов:
- выделение из машинной записи числа с плавающей запятой порядка и мантиссы с учетом скрытого бита;
- сравнение и выравнивание порядков с денормализацией мантиссы числа с меньшим порядком, если выполняется операция сложения или вычитания; сложение или вычитание порядков, если выполняется операция умножения или деления;
- выполнение операции над мантиссами;
- нормализация результата с коррекцией порядка;
- формирование числа со скрытым битом для записи в память.
При выполнении операций над числами с плавающей запятой порядки, как правило, остаются в формате характеристик, т.е. смещенными. При этом, когда выполняется сравнение характеристик, смещения взаимно сокращаются и в результате остается истинная разность порядков, а когда выполняется сложение или вычитание характеристик, полученная сумма или разность корректируется на величину смещения.
Операции над мантиссами, как правило, выполняются в прямых кодах. При этом знаки операндов анализируются отдельно. По результатам этого анализа определяется знак произведения или частного, или тип операции: сложение или вычитание.
В операциях над числами с плавающей запятой может возникнуть переполнение, когда порядок результата операции больше максимального, или антипереполнение или исчезновение порядка, когда порядок результата операции меньше минимального. При сложении (или вычитании) чисел с плавающей запятой переполнение или антипереполнение может возникнуть только в ходе нормализации суммы (или разности) мантисс. При умножении (или деления) чисел с плавающей запятой переполнение или антипереполнение выявляется при сложении (или вычитании) порядков. Причем в ходе нормализации мантиссы произведения (или частного) может исчезнуть переполнение или возникнуть антипереполнение. Так как порядки чисел с плавающей запятой представлены в форме характеристик и являются числами без знака, то наличие переполнения или исчезновения порядка определяется после сложения (или вычитания) характеристик путем анализа признака переноса (или заема) C и старшего разряда суммы (или разности) характеристик.
Чтобы упростить процедуру формирования суммы или разности мантисс и исключить сложную процедуру анализа знаков, мантиссы чисел перед выполнением операции сложения или вычитания переводятся в дополнительный код, а после операции делается обратное преобразование мантиссы результата в прямой код.
Аналогично, при выполнении умножения или деления, характеристики заменяются порядками со знаком в дополнительном коде. При этом возникновение переполнения или исчезновения порядков (антипереполнения) при сложении (вычитании) порядков может быть определено по признаку переполнения V.
По результатам выполнения операций над числами с плавающей запятой должны быть сформированы признаки PSW. Признак N определяется знаком результата операции. Признак V устанавливается в 1, если в результате выполнения операции возникло переполнение; при этом полученные значения мантиссы и характеристики записываются как результат операции. Признак Z устанавливается в 1, если возникло антипереполнение или мантисса результата равна 0; при этом знак результата операции сохраняется, а мантисса и характеристика сбрасываются в 0. Признак C после выполнения операции над числами с плавающей запятой должен быть сброшен в 0.
Практическая часть
Практическая часть работы включает выполнение следующих действий:
а) в соответствии с индивидуальным заданием разработка алгоритмов выполнения двух арифметических операций над числами с плавающей запятой: одна операция - сложение или вычитание, вторая операция - умножение или деление;
б) в соответствии с разработанными алгоритмами составление программ выполнения арифметических операций над числами с плавающей запятой;
в) формирование и занесение в память и РОНы исходных значений и необходимых вспомогательных данных;
г) запись в память программ выполнения арифметических операций над числами с плавающей запятой;
д) выполнение программ;
е) контроль результатов работы программ.
Правильность разработки и выполнения программ выполнения арифметических операций над числами с плавающей запятой контролируется путем ручной трассировки контрольных примеров с последующим сравнением результатов работы программы с результатами ручной трассировки.
Варианты заданий.
Варианты индивидуальных заданий приведены в табл. 2.14 и табл. 2.15.
Порядок выполнения работы.
А. В процессе самостоятельной работы
1. Выбрать исходные данные в соответствии с номером варианта.
2. Составить алгоритмы программ для решения поставленной задачи.
3. Составить программы вычислений в мнемонических и машинных кодах.
4. Составить карту распределения памяти под команды и данные.
5. Произвести ручную трассировку программ с использованием
самостоятельно выбранных исходных данных, при этом в таблице трассировки должны быть отражены значения информации в ячейках памяти и используемых регистрах, а также значения в регистре слова состояния PSW.
6. Оформить отчет по лабораторной работе.
Содержание отчета
1. Титульный лист.
2. Текст задания.
3. Перевод исходных данных в шестнадцатиричную систему счисления.
4. Схемы алгоритмов программ.
5. Тексты программ в мнемонических и машинных кодах.
6. Карта распределения памяти под команды и данные.
7. Таблицы трассировки программ.
Во всех вариантах операнды должны быть представлены в формате длинного слова L (32 разряда).
Программируемые операции Таблица 2.14
Вариант Формат данных 1 операция Действия над мантиссами 2 операция Действия над порядками 7 G Сложение В дополнительных кодах Умножение В дополнительных кодах
Алгоритмы выполнения умножения или деления Таблица 2.15
Вариант Базовый алгоритм 7 Умножение со сдвигом суммы частичных произведений влево, неподвижным множимым и анализом множителя, начиная со старших разрядов
Год: 2018
Данный заказ (лабораторная работа) выполнялся нашим сайтом в 2018-м году, в рамках этого заказа была разработана программа в среде программирования VAX-11. Если у Вас похожее задание на программу, которую нужно написать на VAX-11, либо на другом языке программирования, пожалуйста заполните форму, приведённую ниже, после чего Ваше задание в первую очередь рассмотрит наш программист, выполнявший в 2018-м году этот заказ, если он откажется, то Ваше задание оценят другие наши программисты в течение 48-и часов, если оценка нужна срочно, просим Вас оставить пометку об этом - напишите в тексте задания фразу "СРОЧНЫЙ ЗАКАЗ".
Viber:
+79374242235
Telegram: kursovikcom ВКонтакте: kursovikcom WhatsApp +79374242235 E-mail: info@kursovik.com Skype: kursovik.com |