Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Операции над машинными кодами чиселСодержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
Все современные ЭВМ имеют достаточно развитую систему команд, включающую десятки и сотни машинных операций. Однако выполнение любой операции основано на использовании простейших микроопераций типа сложения и сдвиг. Это позволяет иметь единое арифметико-логическое устройство для выполнения любых операций, связанных с обработкой информации. Правила сложения двоичных цифр двух чисел А и В представлены в табл. 1.4. Здесь показаны правила сложения двоичных цифр ai, bi одноименных разрядов с учетом возможных переносов из предыдущего разряда pi-1. Подобные таблицы можно было бы построить для любой другой арифметической и логической операции (вычитание, умножение и т.д.), но именно данные этой таблицы положены в основу выполнения любой операции ЭВМ. Под знак чисел отводится специальный знаковый разряд. Знак «+» кодируется двоичным нулем, а знак «-» - единицей. Действия над прямыми кодами двоичных чисел при выполнении операций создают большие трудности, связанные с необходимостью учета значений знаковых разрядов:
Таблица 1.4
• во-первых, приходится отдельно обрабатывать значащие разряды чисел и разряды знака; • во-вторых, значение разряда знака влияет на алгоритм выполнения операции (сложение может заменяться вычитанием и наоборот). Во всех ЭВМ без исключения все операции выполняются над числами, представленными специальными машинными кодами. Их использование позволяет обрабатывать знаковые разряды чисел так же, как и значащие разряды, а также заменять операцию вычитания операцией сложения. Сложение (вычитание). Операция вычитания приводится к операции сложения путем преобразования чисел в обратный или дополнительный код. Пусть числа А≥0 и В≥0, тогда операция алгебраического сложения выполняется в соответствии с табл. 1.5. Таблица 1.5 Таблица преобразования кодов при алгебраическом сложении
Скобки в представленных выражениях указывают на замену операции вычитания операцией сложения с обратным или дополнительным кодом соответствующего числа. Сложение двоичных чисел осуществляется последовательно, поразрядно в соответствии с табл. 1.4. При выполнении сложения с использованием машинных кодов необходимо соблюдать следующие правила. 1. Слагаемые должны иметь одинаковое число разрядов. Для выравнивания разрядной сетки слагаемых можно дописывать нули слева к целой части числа и нули справа к дробной части числа. 2. Знаковые разряды чисел участвуют в сложении так же, как и значащие. 3. Необходимые преобразования кодов (п.1.2.) производятся с изменением знаков чисел. Приписанные незначащие нули изменяют свое значение при преобразованиях по общему правилу. 4. При образовании единицы переноса из старшего знакового разряда, в случае использования ОК, эта единица складывается с младшим числовым разрядом. При использовании ДК единица переноса отбрасывается. Знак результата формируется автоматически, результат представляется в том коде, в котором представлены исходные слагаемые. Пример 1.17. Сложить два числа А 10=7 В 10=16 А2 = +111; В2 = +10000. Исходные числа имеют различную разрядность, необходимо провести выравнивание разрядной сетки: [ A 2]пк = [ A 2]oк = [ A 2]дк = 0.00111; [ В 2]пк = [ В 2]ок = [ В 2]дк = 0.10000. Сложение в обратном или дополнительном коде дает один и тот же результат 0.00111 + 0.10000 С (2) = 0.10111 С(10) = +23. Обратим внимание, что при сложении цифр отсутствуют переносы в знаковый разряд и из знакового разряда, что свидетельствует о получении правильного результата. Пример 1.18. Сложить два числа А 10 =+ 16 В= -7 в ОК и ДК. В соответствии с табл. 1.5 должна быть реализована зависимость А+(-В), в которой второе слагаемое преобразуется с учетом знака [A2]пк = 0.10000 = 0.10000 [А2]ок = 0.10000 [А2]дк = 0.10000; [B2]пк = 1.00111 = 1.00111 [В2]ок = 1.11000 [В2]дк = 1.11001.
Сложение в OK Сложение в ДК [А2]ок = 0.10000 [A2] = 0.10000 +[В2]ок = 1.11000 +[B2] = 1.11001 1 0.01000 10.01001 + 1 0.01001 C2 = 0.01001 C2 = 0.01001 C10 = +9 C10 = +9
При сложении чисел в ОК и ДК были получены переносы в знаковый разряд и из знакового разряда. В случае ОК перенос из знакового разряда требует дополнительного прибавления единицы младшего разряда (см.п.4 правил). В случае ДК этот перенос игнорируется. Пример 1.19. Сложить два числа А 10 =- 16 В= +7 в ОК и ДК. В соответствии с табл. 1.3 должна быть реализована зависимость (-А)+В, в которой первое слагаемое преобразуется с учетом знака [A2]пк = -10000 = 1.10000 [А2]ок = 1.01111 [А2]дк = 1.10000; [B2]пк = + 00111= 0.00111 [В2]ок = 0.00111 [В2]дк = 0.00111. Сложение в OK Сложение в ДК [А2]ок = 1.01111 [A2] = 1.10000 +[В2]ок = 0.00111 +[B2] = 0.00111 1.10110 1.10111 При сложении чисел в ОК и ДК были получены отрицательные результаты («1» в знаковом разряде). Для перевода обратного кода отрицательного числа в прямой необходимо инвертировать значащие разряды, а знаковый разряд оставить без изменения. А для перевода дополнительного кода отрицательного числа в прямой код необходимо инвертировать значащие разряды и прибавить единицу младшего разряда. т.о. имеем в ПК из ОК 1.01001, а в ПК из ДК 1.01000 + 1 т.е. [С2]пк = 1.01001 [С2]пк = 1.01001 C10 = -9 C10 = -9 Умножение. Умножение двоичных чисел реализуется в прямом коде. Рассмотрим, каким образом оно приводится к операциям сложения и сдвигам. Пример 1.20. Умножить два числа А10 = +7 В10 = - 5. Перемножим эти числа, представленные прямыми двоичными кодами, так же, как это делается в десятичной системе. [ A 2]п = 0.111 -множимое (операнд 1 – ОП1); [ В 2]п = 0.101 - множитель (операнд 2 – ОП2»); 000 - обнуление регистра частичных сумм (РЧС); + 111 – мл. разряд ОП2 равен «1», поэтому к РЧС +ОП1; 1 такт å = 111 – результирующее значение РЧС; ® 0111 – сдвиг РЧС вправо на один разряд; 2 такт å = 00111 –очередной р-д ОП2=«0», поэтому только сдвиг + 111 - оч. разряд ОП2 равен «1», поэтому к РЧС +ОП1 3 такт å= 100011 - результирующее значение РЧС; ® 100011 - сдвиг РЧС вправо на один разряд. Знак произведения определяется путем сложения по «модулю 2» знаков сомножителей (0 Å 0 = 0) [ С 2]пк = 0.100011. Таким образом, С 10 = + 35. Нетрудно видеть, что произведение получается путем сложения частных произведений, представляющих собой разряды множимого, сдвинутые влево в соответствии с позициями разрядов множителя. Частные произведения, полученные умножением на нуль, игнорируются. Важной особенностью операции умножения n-разрядных сомножителей является увеличение разрядности произведения до п+п=2п. Знак произведения формируется путем сложения по модулю "2" знаковых разрядов сомножителей. Возможные переносы из знакового разряда игнорируются. Деление. Операция деления, как и в десятичной арифметике, является обратной операции умножения. Эта операция также приводится к последовательности операций сложения и сдвига. Отметим, что делимое перед операцией деления должно быть приведено к 2 n -разрядной сетке. Только в этом случае при делении на n -разрядный делитель получается n -разрядное частное. Знак частного формируется также путем сложения по «модулю 2» знаковых разрядов делимого и делителя, как это делалось при умножении. Если в процессе вычислений значение результата превышает значение A, то может возникать переполнение разрядной сетки и получение неверного результата. Признаками переполнения являются: n наличие переноса из значащих разрядов в знаковый и отсутствие переноса из знакового разряда («положительное» переполнение); n наличие переноса из знакового разряда и отсутствие переноса из значащих в знаковый разряд («отрицательное» переполнение). Пример 1.21. Сложить 2 числа: А=+5 и В=+6 в четырехразрядной сетке (с учетом знакового разряда). Сложение в OK Сложение в ДК [А2]ок = 0.101 [A2] = 0.101 +[В2]ок = 0.110 +[B2] = 0.110 1.011 1.011
C2 = 1.100 C2 = 0.101 C10 = -4???(вместо +11)! C10 = -5??? (вместо +11)!
Пример 1.22. Сложить 2 числа: А=-5 и В=-6 в четырехразрядной сетке (с учетом знакового разряда). Сложение в OK Сложение в ДК [А2]ок = 1.010 [A2] = 1.011 +[В2]ок = 1.011 +[B2] = 1.100 10.101 10.111 0.110 C2 = 0.110 С2 = 0.111 C10 = +6??? (вместо -11)! C10 = +7??? (вместо -11)! Как видно из примеров, при сложении положительных чисел получается отрицательный результат и наоборот. Это объясняется тем, что в трех значащих разрядах максимальное число по модулю может быть семь, а в примерах необходимо записать соответственно С=+11 и С=-11.
Задания для работы на занятии: 1. Перевести из десятичной системы счисления в двоичную, восьмеричную, шестнадцатеричную и двоично-десятичную числа: -175,34; -256,75. 2. Перевести из двоичной системы счисления в десятичную, восьмеричную, шестнадцатеричную и двоично-десятичную числа: -10000111010101,1001; -1111100010101111100101,10101. 3. Образовать все виды машинных кодов от чисел: 35 и -44. Выполнить их сложение во всех кодах и проверить правильность результата. 4. Умножить в машинных кодах числа: -5 и +9; -3 и –8. Результат проверить. 5. Представить числа 35 и –44 в форме с плавающей запятой и показать их размещение в шестнадцатиразрядной сетке ЭВМ. Выполнить сложение в форме с плавающей запятой. Проверить правильность результата.
Контрольные вопросы:
1. Что понимается под системой счисления? 2. Сформулируйте правила перевода целых и дробных чисел из одной системы счисления в другую? 3. Как переводятся числа в системах счисления с основаниями, кратными степени 2? 4. Каково назначение обратного и дополнительного кодов? 5. Каково назначение модифицированных обратного и дополнительного кодов?
Задание на самоподготовку: 1. Составить и выполнить по одному примеру на решение задач по · переводу чисел из одной системы счисления в другую; · образованию машинных кодов; · их сложению, вычитанию и умножению. 2. Подготовиться к ПЗ№2 "Минимизация логических функций".
Литература: 1. Пятибратов А.П. и др. Вычислительные системы, сети и телекоммуникации: Учебник.-2-е изд., перераб. и доп./ А.П.Пятибратов, Л.П. Гудыно, А.А.Кириченко; Под ред. А.П.Пятибратова. М.: Финансы и статистика, 2002.-512с:ил. 2. Каган Б.М. Электронные вычислительные машины и системы: Учеб. Пособие для вузов.-3-е изд.,перераб и доп.-М.: Энергоатомиздат,1991.-592с.:ил. 3. Нешумова К.А. Электронные вычислительные машины и системы. М.: Высшая школа, 1989.-366с.:ил.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-12-16; просмотров: 2836; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.147.86.104 (0.007 с.) |