Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь 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; просмотров: 3007; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.198 (0.01 с.) |