Сложение в модифицированном дополнительном коде

Сложение в модифицированном дополнительном коде

В отличие от обычных машинных кодов в модифицированных кодах под знак числа отводится два разряда: плюс изображается двумя нулями, а минус – двумя единицами. Это весьма удобно для выявления переполнения разрядной сетки, которое может получиться при сложении чисел с одинаковыми знаками.

Пример 1. Числа А2= + 0.10101 и А2 = – 0.10101представить в обратном и дополнительном

Сложение чисел в модифицированном обратном коде. Сложение осуществляется по правилам двоичной арифметики. Отличие состоит лишь в том, что единицу переноса из старшего знакового разряда (если она появляется) необходимо прибавить к младшему разряду суммы, т.е. образуется циклический перенос.

Пример 2. Сложить в модифицированном обратном коде двоичные числа А и В при условии: А >0, В > 0, А + В > 0.

Знак 01 говорит о том, что получен положительный результат, а перенос из старшего разряда в знаковый указывает на то, что произошло переполнение разрядной сетки. Следовательно, истинный результат получен в прямом коде и равен:

Пример 3. Сложить в модифицированном обратном коде двоичные числа А и В при условии: А 0, второе слагаемое число отрицательное:

Получилось отрицательное число в дополнительном коде. Перёведем его в прямой код, для чего проинвертируем каждый разряд числа и к младшему разряду прибавим 1.

Результат показывает, что сумма – число отрицательное, а разрядная сетка переполнена (1 0). Переведем дополнительный код в прямой и получим

Признаками переполнения разрядной сетки являются либо наличие переноса в знаковый разряд при отсутствии переноса из знакового разряда, либо наличие переноса из знакового разряда суммы при отсутствии переноса в этом разряде. Если нет переносов из знакового разряда и в знаковый разряд суммы или есть оба эти переноса, то переполнения разрядной сетки нет.

Не нашли то, что искали? Воспользуйтесь поиском:

Лучшие изречения: Сдача сессии и защита диплома — страшная бессонница, которая потом кажется страшным сном. 9156 — | 7374 — или читать все.

Лабораторная работа №123. Основы машинной арифметики.

Цель работы.Изучить основы машинной арифметики, представления чисел в прямом, обратном и дополнительном кодах и арифметических операций над ними.

Любые данные (числа, текст, команды программ и др.) в памяти компьютера представлены двоичными кодами, которые представляют собой совокупность битов. В частности, двоичный код, содержащий 8 бит (говорят: "8 разрядов"), называется байтом. Для хранения данных используют следующие форматы двоичного кода: 8-разрядный (байт), 16-разрядный (полуслово), 32-разрядный (слово) и 64-разрядный (двойное слово).

Для выполнения арифметических операций используют специальные коды представления чисел, которые позволяют свести операцию вычитания чисел к арифметическому сложению этих кодов. Различаютпрямой, обратный и дополнительныйкоды. Прямой код используется для представления отрицательных чисел в памяти компьютера, а также при выполнении операций умножения и деления. Обратный и дополнительный коды применяются для выполнения операции вычитания, которую заменяют операцией сложения чисел с разными знаками: а-b=a+(-b).

В коде числа каждому разряду соответствует определенный элемент разрядной сеткой. Для записи знака числа в разрядной сетке имеется строго определенный фиксированный разряд, обычно это крайний разряд разрядной сетке.

Замечание. Условимся при записи кода знаковый разряд числа отделять запятой от других разрядов. Если формат числа не указан будем считать, что число 8-разрядное (байт).

Задание 1. Запишите следующие числа в прямом, обратном и дополнительном кодах.

а) 1101011; б) –101011; в) –101101; г) –1100111.

Методические указания.

Прямой код целого числа. Под прямым кодом двоичного числа понимают запись самого числа. Значение знакового разряда для положительных чисел определяют равным нулю (0), для отрицательных чисел — единице (1). Например, для записи кода используется байт, то:

число прямой код
+1101 0,0001101
–1101 1,0001101

Крайний левый разряд в прямом коде нами отведен под знак числа, остальные разряды – под само число. Число располагаем в разрядной сетке так, чтобы цифра младшего разряда числа занимала крайнюю правую ячейку.

знаковый разряд ® младший разряд

Обратный код целого числа.Обратный код целого положительного числа совпадает с его прямым кодом. Для отрицательного числа обратный код строится заменой каждого незнакового байта его представления в прямом коде на противоположный (заменим 1 на 0, 0 на 1), знаковый разряд не изменяется.

число прямой код обратный код Замечание
+11011 0,00011011 0,00011011 Число положительное, обратный и прямой коды совпадают.
–11011 1,00011011 1,11100100 Число отрицательное, каждый байт, кроме знакового, изменен на противоположный.

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

Пример.

число прямой код обратный код дополнительный код
+1110 0,0001110 0,0001110 0,0001110
–1110 1,0001110 1,1110001 1,1110010

Задание 2. Переведите числа X и Y в прямой, обратный и дополнительный коды. Выполните сложение в обратном и дополнительном кодах. Результат переведите в прямой код. Полученный результат проверьте, используя правила двоичной арифметики.

а) X= –11010; Y= 100111; б) X= –11101; Y= –10011; в) X= 111010; Y= –101111;
г) X= –101110; Y= –11101; д) X= 1101011; Y= –1001110; е) X= –11011; Y= –10111.
Читайте также:  Принтер эпсон л 210 печатает пустые листы

Методические указания.

При сложении чисел в знаковом разряде может появиться две цифры, вторую единицу от запятой называют единицей переноса.

При сложении чисел в дополнительном кодевозникающая единица переноса в знаковом разряде отбрасывается.

При сложении чисел в обратном кодевозникающаяединица переноса в знаковом разряде прибавляется к младшему разряду суммы кодов.

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

Пример. Сложить X и Y в обратном и дополнительном кодах:

а) X= 1111 и Y= –101.

Сложим числа, пользуясь:

правилами двоичной арифметики обратным кодом дополнительным кодом
X= 1111 Y= – 101 X+Y= 1010 Xобр= 0,0001111 Yобр= 1,1111010 1 0,0001001 +1 (X+Y)обр= 0,0001010 Xдоп= 0,0001111 Yдоп= 1,1111011
единица переноса отбрасывается

1 0,0001010

(X+Y)доп= 0,0001010

Так как результат сложения является кодом положительного числа (знаку плюс (+) соответст­вует 0 в знаковом разряде), то (X+Y)обр=(X+Y)доп=(X+Y) пр.

Сложим числа, пользуясь:

правилами двоичной арифметики обратным кодом дополнительным кодом
X = – 101 Y = – 111 X+Y= –1100 Xобр= 1,1111010 Yобр= 1,1111000 1 1,1110010 +1 (X+Y)обр= 1,1110011 Xдоп= 1,1111011 Yдоп= 1,1111001
единица переноса отбрасывается

1 1,1110100

(X+Y)доп= 1,1110100

Так как сумма является кодом отрицательного числа (знак 1), то необходимо перевести результаты в прямой код:

· из обратного кода: (X+Y)обр=1,1110011 Þ (X+Y)пр=1,0001100;

· из дополнительного кода: (X+Y)доп=1,1110100 Þ (X+Y)пр=1,0001011+0,0000001, (X+Y)пр =1,0001100.

Получили X+Y= –1100, результат совпадает с суммой, полученной по правилам двоичной арифметики.

Задание 3. Сложите числа X и Y в модифицированном обратном и модифицированном дополнительном восьмиразрядных кодах. При обнаружении переполнения увеличьте число разрядов в кодах и повторите суммирование. Результат переведите в прямой код. Полученный результат проверьте, используя правила двоичной арифметики.

а) X= 1101101; Y= 110101; б) X= 111101; Y= –111001; в) X= –111010; Y= –1100111;
г) X= –11001; Y= –100011; д) X= –10101; Y= 111010; е) X= –1101; Y= –111011 .

Методические указания.

Модифицированные обратный и дополнительный коды.

Переполнение разрядной сетки может привести к переносу единицы в знаковый разряд, что приведет к неправильному результату. Положительное число, получившееся в результате арифметической операции может восприниматься как отрицательное, так как в знаковом разряде появится "1" и наоборот.

Например: X = 0,1011110 Y = 0,1101100 X+Y = 1,1001010

X и Y – коды положительных чисел, но в процессе сложения в знаковом разряде появилась "1", что означает код отрицательного числа. Чтобы распознать переполнение разрядной сетки вводятся модифицированные коды.

Модифицированный обратный код характеризуется тем, что под знак числа отводится не один, а два разряда. Форма записи чисел в модифицированном обратном коде выглядит следующим образом:

· для положительного числа X= Þ X = ;

· для отрицательного числа X= Þ X = ;

( — обозначение логической операции отрицания "не X", если X=0, то =1; X=1, =0).

В модифицированных обратном и дополнительном кодах под знак числа отводится не один, а два разряда: "00" соответствует знаку "+", "11" – знаку "-". Любая другая комбинация (“01” или “10”), получившаяся в знаковых разрядах является признаком переполнения разрядной сетки. Сложение чисел в модифицированных кодах ничем не отличается от сложения в обычных обратном и дополнительном кодах.

Пример. Даны два числа: X=101001 и Y= –11010. Сложить их в дополнительном и модифицированном дополнительном кодах.

Обычная запись Обратный код Модифициро-ванный обратный код Дополнитель-ный код Модифициро-ванный дополнительный код
X=+0101011 Y=–0011110 Xобр=0,0101011 Yобр=1,1100001 Х =00,101011 Y =11,100001 Xдоп=0,0101011 Yдоп=1,1100010 X =00,101011 Y =11,100010
Дополнительный код Модифицированный дополнительный код
Xдоп= 0,0101011 Yдоп= 1,1100010
единица переноса отбрасывается

1 0,0001101

(X+Y)доп= 0,0001101

X = 00,0101011 Y = 11,1100010

единица переноса отбрасывается

1 00,0001101

(X+Y) = 00,001101

Переполнение не наблюдается (в знаковых разрядах “00”). Результаты, полученные в обычном и модифицированном кодах, совпадают (X+Y=1101).

Блок – схема алгоритма работы микропрограммного устройства управления.

2. МК с одним адресом в адресном поле. Адресация МК- принудительная с одним адресом.

Sоп X А’ β

При БПУ X=0 и АСЛ=А’β

Кодирование МК – горизонтальное.

Микропрограммные устройства управления с принудительной адресацией и одним адресом работает в соответствии с микропрограммой, имеющей следующий вид:

3. Естественная адресация команд.

Форматы микрокоманд (МК)

Р1

Р1

Р1 – признак, с помощью которого различаются эти две микрокоманды.

Алгоритм работы микропрограммного устройства управления
имеет следующую граф — схему:

Р2=1 при БПУ (поле Х=0)

Р2=0 при УПУ (поле Х≠0)

Асл = СТАМК + 1, если операционная МК
Асл = СТАМК + 1, если УПУ при условии хi=l
Асл = А при БПУ и при УПУ, если хi=1

Читайте также:  Какие одеяла самые лучшие отзывы

X4=сигнал «останов»

Операционная МК 0 1 Управляющая МК

Структурная схема микропрограммного устройства управления с
естественной адресацией имеет следующий вид:

Примеры реализации некоторых алгебраических операций.

Сложение — вычитание в дополнительном коде чисел, поступающих в
дополнительном коде. Результат выдается в дополнительном
коде(способ 1а)

1. Если S=A+B, то [S]доп=[А]доп+[B]доп. Сложение по mod 2 m +1

2. Если S=A-B= А+(-В), то [S]доп=[А]доп+[В]доп+2 — n (по mod 2 m +1 )
Если необходимо изменить знак у слагаемого В, т.е. получить -В, то

необходимо инвертировать все разряды числа, включая знаковый, и к

младшему разряду прибавить единицу (+2 — n ).

Операция вычитания.
+[А]доп= 0.1010

В этом способе знаковые разряды слагаемые участвуют в операции и
поэтому переполнение разрядной сетки определяется с помощью одного из
следующих методов:

1.Признак переполнения формируется в случае, если знаки А и В совпадают,
но не совпадают со знаком суммы S.

2. Признак переполнения формируется, если не совпадают переносы в
знаковый разряд Пm и из знакового разряда Пm+1, т.е.

На практике чаще используется второй метод, т.к. в первом методе
знаки слагаемых нужно хранить до конца операции, а затем сравнивать со
знаком суммы.

Примеры определения переполнения разрядной сетки.

Структурная схема АЛУ для выполнения операций сложения — вычитания чисел, поступающих в дополнительном коде, имеет следующий вид:

Список микроопераций:

1, если сложение

Х1= 0, если вычитание

Микропрограмма выполнения операций сложение – вычитание чисел, поступающих дополнительном коде, имеет следующий вид:

Сложение 1 0 Вычитание

Пример 2.

Сложение – вычитание в модифицированном дополнительном коде чисел, поступающих в прямом коде (способ 2б).

Слагаемые А и В поступают в прямом коде. Сумма S формируется в прямом коде. В процессе сложения – вычитания в необходимых случаях слагаемые А и В могут переводиться в дополнительный код.

Структурная схема АЛУ имеет следующий вид:

В регистр RG1 и комбинационный сумматор SM вводится по дополни-
тельному знаковому разряду. В начале операции в RG1 записывается моди —
фицированный прямой код А, а в RG2 — прямой код второго слагаемого В.
Вычитание сводится к сложению путем предварительного изменения знака
слагаемого В на противоположный.

Сложение выполняется следующим образом:

1. Слагаемое А переводится в модифицированный дополнительный код.

2. В регистре RG1 формируется сумма S в дополнительном коде.

При этом выполняется либо микрооперация RG1 := RG1+00. RG2(7:0), если
В>0; либо микрооперация RG1:= RG1+11. RG2(7:0)+1, если В m

Т.е. S=11.0000 0000

4. На последнем этапе выполняется перевод суммы S из
модифицированного дополнительного кода в прямой код, если на втором
этапе не произошло переполнение разрядной сетки (ПРС).

X1= 0, если выполняется операция вычитание

1, если выполняется операция сложение
Х2=P2 = RG1(8)- знаковый разряд слагаемого А, при этом Р1 – второй знаковый разряд, который называется также разрядом переполнения разрядной сетки ПРС.

X3=P3=RG2(8)- знаковый разряд слагаемого В.

Х4= Р1 + Р2 = Р1Р2ɣР1Р2 — сумма по модулю 2 знаковых разрядов слагаемых А и В
Х4=1, если знаки P1 и Р2 разные
Х4=0, если знаки Р1 и Р2 одинаковые

Х5= Р4=1, если RG1(7:0)=0; Р4 — сигнал обнаружения нуля (СОН) в значащих

разрядах регистра RG1.

y1

y2 Запись слагаемых А и В

в прямом коде в регистры.

у4 Изменение знака у второго

слагаемого В,если выполняется

0 операция вычитания.

1

y6 слагаемого А, если А m 1

Образование

Пример 3.

Умножение двух чисел в прямых кодах. Сдвиг множителя и суммы
частичных произведений вправо (способ 2.1)

А — множимое; В — множитель.

Структурная схема АЛУ имеет следующий вид:

у5: RG2(7:0):=RG2(7:0) + RG3(7:0)

RG2(8):= П7
y6: T3H:=RGl(0)

у8: RG2(8):= 1, если результат C -8
у6: RG2(1:9):= RG2(1:9)+0. RG3(1:8)
у7: RG2(0:9):=RG2(1:9).0

Микропрограмма начинается с установления начальных значений
регистров и счетчика. После этого по сигналу у4 устанавливается знак
частного С=А/В и производится пробное вычитание модулей |А| — |В| = G по
сигналу у5. Знак RG1(0) частного равен 1 если знаки делимого и делителя
разные (условие Х112). Пробное вычитание производится с целью
выявления возможного переполнения разрядной сетки (ПРС). Если G>0, то
возникает ПРС и триггер переполнения Тпрс устанавливается в 1 и деление не
выполняется. Если результат пробного вычитания Go 0

1 Формирование знака

у5 Пробное вычитание

у6 Восстановление |A|

у7 Сдвиг влево RG2

A B C D

у6 Восстановление ЧОС

содержимого RG1 в RG2

у13 Выдача результата

Построение таблиц микрокоманд.

Рассмотрим пример составления таблицы МК для выполнения
микропрограммы ускоренного умножения.

В приведенной микропрограмме (МП) ускоренного умножения
количество различных МО равно N=7: <у1, у2. у7>, количество различных
ЛУ L=7: <х1, х2. х7>, поэтому l= ]log2(L+l)[=3, т.е. поле X должно иметь
три разряда.

В соответствии с количеством вершин в графе МП требуемое
количество ячеек УП Р’ ориентировочно равно 16, поэтому Р = ]log2 Р’ [=4,
т.е. разрядность адресных полей А1 и А2 равно 4.

Читайте также:  Формат значков для ярлыков

Построим таблицу МК для случая принудительной адресации с двумя
адресами в МК, используется горизонтальный способ кодирования
микроопераций.

Адрес ячейки Микропрограмма Примечание
Sоп у1у2у3у4у5у6у7 Х А1 А2 МО ЛУ
Анач x1=0 x1=1 x2=0 x2=1 x3=0 x3=1 x4=0 x4=1 x5=0 x5=1 x6=0 x6=1 x7=0 x7=1 0 0 0 0 0 0 0 х1
0 0 0 0 0 0 0 х2
1 0 0 0 0 0 0 —- y1 БПУ
0 0 0 0 0 0 0 х3
0 1 0 0 0 0 0 —- y2 БПУ
0 0 0 1 1 0 0 y4,y5 х4
0 0 1 0 0 0 0 —- y3 БПУ
0 0 0 0 0 0 0 х1
0 0 0 0 0 0 0 х5
0 0 0 0 0 0 0 х6
1 0 0 0 0 0 0 y1 х6
0 0 0 0 0 0 0 х7
0 0 0 0 0 1 0 y6 х7
0 0 0 0 0 0 0 —- Ост.
0 0 0 0 0 0 1 —- y7 Ост.

В этой таблице каждая строка соответствует одной ячейке
управляющей памяти (УП). Адрес ячейки указан в старших четырех разрядах
строки. В остальных разрядах строки записана микрокоманда. Длина
микрокоманды (количество разрядов в ячейке УП) равна K=N+l+2p=18 т.к.
N=7, l=3,а р=4.

В графе «Примечание» указаны микрооперации (МО), входящие в
данную МК и ЛУ, проверяемые при выполнении МК. Прочерк в графе МО
означает пустую МК.

Строки таблицы заполнены в соответствии с графом МП. Из графа
следует, что первая МК является пустой (условная вершина x1
осуществляется УПУ по значению х1. Поэтому в поле Sопдля нулевой строки
записаны нули, а в поле X записан номер ЛУ х1, т.е. Х=001. В полях А1 и А2
указаны адреса первых следующих свободных ячеек УП, т.е. А1=0001, а
А2=0010. Таким образом первая МК передает управление следующей МК с
адресом А1 =0001 при x1=0 и МК с адресом А2=0010 при x1=1.

Таким образом, при х1=0 должна выполняться УПУ по значению х2.
Поэтому в первой строке таблицы записана пустая МК, передающая
управление A1=0011 при х2=0 и А2=0100 при х2=1.

При x1=1 осуществляется переход к операторной вершине, в которой записана МО у1. Поэтому во второй строке таблицы записана МК,
формирующая выходной сигнал у1 и осуществляющая БПУ в следующую
свободную ячейку с адресом 0101. Таким образом, во второй строке в поле

Soпединица записана в первом разряде, соответствующем сигналу у1, т.е.
Soп=100 0000, а в поле X записаны нули, т.к. переход к следующей МК

безусловный и никакое ЛУ не проверяется. В поле A1 записан адрес 0101, а
значение адреса безразлично (переход по А2 не происходит).

При х2=0 выполняется УПУ по значению х3. МК, проверяющая
значение х3 записана в третьей строке таблицы. При этом, если х3=0, то
происходит БПУ к вершине, в которой записаны у4 и у5, а при х3= 1 — БПУ к
вершине у3. Поэтому в третьей строке записана пустая МК (Soп = 0) с
проверкой условии х3 (Х=011) и адрес А1=0101. Этот адрес был ранее
зарезервирован для МК, формирующей сигналы у4 и у5. В поле А2 записан
адрес следующей свободной ячейки, т.е. А2=0110.

При х2=1 выполняется МК, формирующая МО у2 и БПУ по адресу 0101
т.е. A1=0101 в четвертой строке таблицы и Sоп=010 0000 (у2=1).

Наконец, в МК по адресу 0101 записана сама МК формирующая МО у4
и у5 и УПУ по значению х4. Таким образом, в поле Sоп записано Sоп=000 1100.
Из графа следует, что при х4=0 выполняется возврат в начало МП. Однако
указать в поле А1 адрес нулевой ячейки нельзя, т.к. по Анач=0000 происходит
останов МП. Поэтому в пятой строке в поле А1 указан адрес следующей
свободной ячейки , т.е. A1=0111, в которой повторено содержимое нулевой
ячейки, а в поле А2 записан адрес А2=1000.

В шестой строке (строке 0110) записана МК формирующая МО у3 и
осуществляющая БПУ к МК из пятой строки.

В седьмой строке, как уже отмечалось, повторено содержимое нулевой
ячейки.

В восьмой строке записана пустая МК (с Sоп=000 0000), проверяющая
ЛУ х5 с УПУ по адресам А1=1001 и А2=1010.

В девятой строке записана пустая МК поверяющая ЛУ х6 и с УПУ по
адресам А1=1011 иА2=1100.

В десятой строке записана МК, формирующая МО y1, т.е. Sоп=l00 0000
и проверяющая следующее условие х6 с последующим УПУ по адресам
А1=1011 и А2=1100.

В одиннадцатой строке записана пустая МК, проверяющая х7 и с УПУ
по адресам А1=1101 и А2=1110.

В двенадцатой строке записана МК, формирующая у6, проверяющая х7
и с УПУ по адресам А1=1101 и А2=1110.

В тринадцатой строке записана пустая МК, осуществляющая БПУ на
конечную вершину с адресом Анач=0000 и остановом.

В четырнадцатой (последней) строке записана МК, формирующая у7, с
выходом на конечную вершину с адресом Анач=0000 и остановом.

Ссылка на основную публикацию
Сколько человек сидит в одноклассниках
Mail.Ru Group исследовала и сравнила аудитории самых популярных в России социальных сетей — «Одноклассники», «Мой Мир», «ВКонтакте», Facebook и Twitter....
Сигнал flash в телефоне panasonic
● 19.12.08 13:08 - krepsky - 9 / 19.12.08 Два дня ломаю голову… Такая ситуация - купили партию телефонов Panasonic...
Сигналы материнской платы при загрузке
BIOS (Basic Input/Output System – базовая система ввода-вывода). Программа системного уровня, предназначенная для первоначального запуска компьютера, настройки оборудования и обеспечения...
Сколько четырехзначных чисел можно составить из нечетных
Условие Решение 1 Решение 2 Решение 3 Поиск в решебнике Популярные решебники Издатель: Н. Я. Виленкин, В. И. Жохов, А....
Adblock detector