Электроника. Организация эвм и систем однопроцессорные эвм
Скачать 4.17 Mb.
|
2.11. Заключительные замечанияПредставленный выше материал дает только общее представление о выполнении арифметических операций над двоичными числами в различных системах счисления. Реальные алгоритмы выполнения арифметических операций, используемые в современных ЭВМ, позволяют существенно ускорить процесс вычислений, особенно для операций умножения и деления. Однако эти алгоритмы весьма громоздки и сложны для первоначального понимания. Более полную информацию о них можно найти в литературных источниках, перечисленных ниже. Библиографический сисок Искусство программирования. Т.1. Основные алгоритмы. 3-е изд., испр. и доп. / Д. Кнут; Под ред. Ю.В. Козаченко М.; СПб.; Киев: ВИЛЬЯМС, 2000. 729 с. Искусство программирования. Т.2: Получисленные алгоритмы. 3-е изд., испр. и доп. / Д. Кнут; Под ред. Ю.В. Козаченко М.; СПб.; Киев: ВИЛЬЯМС, 2000. 832с. Основы информатики: Учебник для вузов А.Я. Савельев. М.: МГТУ им. М.Э. Баумана, 2001. 328 с. Информатика: Системы счисления и компьютерная арифметика: / Е.Андреева, И.Фалина; М.: Лаборатория базовых знаний, 1999. 256 с. Электронные вычислительные машины и системы: Учеб. пособие для вузов. 3-е изд., перераб. и доп. / Б.М. Каган;М.: Энергоатомиздат, 1991. 592 с. Программирование арифметических операций в микропроцессорах: Учеб. пособие для технических вузов. / Злобин В.К., Григорьев В.Л. М.: Высшая школа, 1991. 303 с. Микропроцессоры и их применение в системах передачи и обработки сигналов: Учеб. пособие для вузов / Б.А. Калабеков; М.: Радио и связь, 1988. 368 с. Введение в микропроцессорную технику / Ч. Гилмор; Под ред. В.М. Кисельникова. М.: Мир, 1984. 334 с. Вопросы для самопроверкиКакие виды систем счисления вы знаете? В каких случаях целесообразно применять двоичную, восьмеричную и шестнадцатеричную систему счисления? Чем двоичная система счисления отличается от двоично-десятичной? Как различаются прямой, обратный и дополнительный коды для представления чисел? Когда следует применять прямой, обратный и дополнительный коды для представления чисел? Что такое переполнение разрядной сетки? В каких случаях возникает переполнение разрядной сетки? Для чего используют модифицированные коды? Опишите алгоритм перевода из дополнительного кода в десятичную систему. Поясните понятие «арифметика повышенной точности». Опишите формат ЧФЗ. Для чего нужны ЧФЗ, почему при работе с ними вводят масштабный коэффициент? Опишите формат ЧПЗ. В каких случаях используют ЧПЗ? В чем преимущества ЧФЗ и ЧПЗ? Что такое нормализация числа? Назовите существующие форматы ЧПЗ, используемые в ЭВМ. От чего зависит точность представления ЧПЗ в ЭВМ? Для чего используется нормализация числа? Какие методы ускорения умножения вы знаете? Кратко охарактеризуйте их. В каких случаях используется десятичная арифметика? Зачем нужна двоично-десятичная коррекция? Какие признаки формируются в ЭВМ при нарушении ограничения на длину разрядной сетки? Каким образом хранится символьная информация в ЭВМ? Контрольные задания к главе 2Контрольное задание имеет две формы: Форма 1 – ответы на теоретические вопросы. Форма 2 – выполнение арифметических операций. Выбор формы задания зависит от дополнительных указаний преподавателя. Форма 1. Ответы на вопросыНа листах ответа должны быть указаны номер группы, фамилия студента и номер его варианта. Номера вопросов выбираются студентом в соответствии с двумя последними цифрами в его зачетной книжке. В табл. 2.7 аn-1 – предпоследняя цифра номера, аn – последняя цифра. В клетках таблицы стоят номера вопросов, на которые необходимо дать письменный ответ Таблица 2.7
Форма 2. Выполнение арифметических операций над числамиВсе действия, производимые над операндами и результатами, включая перевод чисел из одной системы счисления в другую, должны быть подробно расписаны в соответствии с алгоритмами, рассмотренными в этом разделе. В операциях перемножения указать вариант операции, т.е. "старшими разрядами вперед" или "младшими разрядами вперед". Результаты представить в десятичной системе счисления. На листах ответа должны быть указаны номер группы, фамилия студента и номер варианта задания. Номер варианта задания выбирается студентом в соответствии с двумя последними цифрами в его зачетной книжке. В табл. 2.8 аn-1 – предпоследняя цифра номера, аn – последняя цифра. В клетках табл. 2.8 стоят номера вариантов заданий, полный список которых приведен в табл. 2.9. Таблица 2.8
Задание 1. Выполнить арифметические действия, рассматривая операнды как ЧФЗ справа от МЗР в формате 1-го байта. Определить модуль результата. Формат результата – 2 байта. Задание 2. Выполнить арифметические действия, рассматривая операнды как ЧПЗ с основанием 2 в следующем формате: несмещенный порядок – 4 бита, мантисса – 8 бит. Формат результата – тот же. Округление производить после приведения операнда к нормализованной форме. Результат нормализовать. Задание 3. Выполнить арифметические действия над операндами, представив их в двоично-десятичном коде. Варианты заданий Таблица 2.9
Продолжение табл. 2.9
Окончание табл. 2.9
Пример выполнения контрольного задания (форма 2)
Задание 1. Выполнить арифметические действия, рассматривая операнды как ЧФЗ справа от МЗР в формате 1-го байта. Определить модуль результата. Формат результата – 2 байта. 1. Выполним операцию сложения Z = X+Y = 18(10) + 33(10) = 51(10). X = 18(10) = 0001 0010(2); Y = 33(10) = 0010 0001(2). Выполним сложение в ПК: Результат: Z = 0011 0011(2) = 51(10) . 2. Выполним операцию вычитания Z = X-Y = 18(10) – 33(10) = -15(10). Результат: Z = 1000 1111(2) = 15(10) . 3. Выполним операцию умножения Z = X*Y = 18(10)*33(10) = 594(10). X = 18(10) = 0001 0010(2); Y = 33(10) = 0010 0001(2). Выполним операцию умножения младшими разрядами вперед: Задание 2. Выполнить арифметические действия, рассматривая операнды как ЧПЗ с основанием 2 в следующем формате: несмещенный порядок – 4 бита, мантисса – 8 бит. Формат результата – тот же. Округление производить после приведения операнда к нормализованной форме. Результат нормализовать. X = 18.33(10); Y = 33.18(10). Преобразуем дробную часть Х, равную 0.33(10), в двоичное число: Таким образом, 0.33(10) = 0.01010100(2), a X = 18.33(10) = 00010010.01010100(2). Представим X в формате ЧПЗ, округлив значение мантиссы до 8 разрядов (ненормализованное число): Нормализуем X: Преобразуем дробную часть Y, равную 0.18(10), в двоичное число: Таким образом, 0.18(10) = 0.00101110(2), a Y = 33.18(10) = 00100001.00101110(2). Представим Y в формате ЧПЗ, округлив значение мантиссы до 8 разрядов (ненормализованное число): Нормализуем Y: 1. Выполним операцию сложения Z = X+Y = 18.33(10) + 33.18(10) = 51.51(10). 2. Выполним операцию вычитания Z = X-Y = 18.33(10) + 33.18(10) = -14.85(10). Результат: Z = (-) 0110 * 0.00111100(2) = - 26 * 0.234375 = - 15(10) 3). Выполним операцию умножения Z = X*Y = 18.33(10)*33.18(10) = 608.1894(10). Перемножим мантиссы сомножителей (вариант умножения младшими разрядами вперед): Сложим порядки сомножителей: Нормализуем произведение: Результат: Z = 1010 * 0.10011000(2) = 210 * 0.59375(10) = 608(10). Задание 3. Выполнить арифметические действия над операндами, представив их в двоично-десятичном коде. 1. Выполним операцию сложения Z=X+Y= 183(10) + 331(10) = 514(10). X = 183(10) = 0001 1000 0011(2-10); Y = 331(10) = 0011 0011 0001(2-10). Результат: Z = 0101 0001 0100(2-10) = 514(10). 2. Выполним операцию вычитания Z = X – Y = 183(10) – 331(10) = -148(10). Представим |Y| в ДК с избытком 6: Выполним сложение: Отсутствие переноса из старшей тетрады является признаком того, что результат получился в ДК (т.е. отрицательный). Перейдем к нескорректированному избыточному ПК: Произведем коррекцию результата в соответствии с п. 5 алгоритма выполнения операции вычитания двоично-десятичных чисел: Поскольку ранее результат получался в ДК, т.е. отрицательный, необходимо добавить знак (-). Результат: Z = - ( 0001 0100 1000)(2-10) = -148(10). 3. Выполним операцию умножения Z = X * Y = 183(10) * 331(10) = 60573(10) X = 183(10) = 0001 1000 0011(2-10); Y = 331(10) = 0011 0011 0001(2-10). Для решения примера выберем вариант перемножения "младшие разряды вперед". В соответствии с п. 1 алгоритма полагаем сумму частичных произведений P0=0. (Частичные произведения будем обозначать Pi). Формирование второго и третьего частичных произведений – более длительная операция, поскольку вторая и третья анализируемые тетрады содержат 3(10), поэтому каждая операция суммирования требует проверки необходимости коррекции. Вычислим P2 ( P2 = Р3 ), последовательно суммируя слагаемые, образующие P2: Таким образом, второе (а также и третье) частичное произведение, состоящее из трех слагаемых, имеет вид P2 = Р3 = 0101 0100 1001(2-10). Теперь можно вычислить сумму первого, второго и третьего частичного произведений, т.е. результат. Окончательный результат: Z = 0110 0000 0101 0111 0011(2-10) = 60573(10). |