Главная страница Комод Кухня Компьютерный стол Плетеная мебель Японский стиль Литература
Главная  Кремниевые микросхемы 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 [ 22 ] 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60

ния сначала младших разрядов чисел (крайних восьми разрядов справа каждого числа), запоминания сигнала окончательного переноса из старшего для этой части

)азряда (значениями которого могут быть только О или \ ) в одноразрядном регистре микропроцессора, называемом флагом переноса, и сложения затем этого числа

(значения переноса) со следующими восемью разрядами суммируемых чисел.

Последовательность действий при сложении следующая:

1. Считать первые восемь разрядов каждого числа из памяти. Сложить эти числа, пользуясь командой ADD (СЛОЖИТЬ БЕЗ ПЕРЕНОСА). Занести результат обратно в память и переслать полученный сигнал переноса в регистр флага и переноса.

2. Считать из памяти следующие восемь разрядов каждого числа и сложить их вместе с содержимым регистра флага переноса, пользуясь командой ADC (СЛОЖИТЬ С УЧЕТОМ ПЕРЕНОСА). Занести окончательный результат в память.

Пример: ,00010010 11111011 +01101000 10000001

01111011 ОПИЮОг

был бы выполнен как сложение младших восьми разрядов

,11111011, + 10000001,

01111lOOa

с пересылкой единицы переноса в регистр флага переноса; затем сложение старших восьми разрядов и единицы переноса

OOOlOOlOa +OIIOIOOO2

01111011,

(из регистра флага переноса)

На этот раз любой перенос будет связан с ошибкой переполнения, т. е. с получением числа, большего, чем И111111 11111111. Переполнение уже произошло бы, если бы число 01111111 11111111 оказалось избыточным. Это объясняется тем, что крайний левый разряд обычно



используется для указания знака числа и в таком случае называется знаковым разрядом. Значение О при этом показывает, что данное число положительное, а 1 - что число отрицательное.

Что можно сказать о вычитании?

Рассмотрим сначала следующий пример сложения двух чисел:

,111111112

000000012

ОООООООО2 и перенос 1, но его пока принимать во внимание не будем.

Заметим, что ОООООООЬ - это двоичная форма запи-сти десятичного числа lio. Для получения нуля в десятичной системе счисления следует прибавить -Ьо к +I10:

(-110+1x0=0).

Следовательно, двоичное число IIIIIIII2 можно использовать для представления десятичного отрицательного числа -lio, так как при прибавлении его к -fOOOOOOOlg (являющемуся -f ho) получаем ОООООООО2 [А-В - это то же, что и Л + {-В) ].

Но если число IIIIIIII2 представляет собой отрицательное десятичное число -Ьо, то как можно представить отрицательное десятичное число -2io?

Очевидно, что такое число должно быть на единицу меньше числа -ho- В двоичной системе счисления числом, на единицу меньшим, чем IIIIIIII2, будет число 11111IIO2. Оно и является представлением десятичного отрицательного числа -2io. Тогда представлением числа -Зю будет IIIIIIOI2. Продолжая эти рассуждения, нетрудно получить следующую таблицу соответствия представлений десятичных и двоичных положительных и отрицательных чисел.

Десятичное число Двоичное число Десятичное чисто Двоичное число

Н-15 00001111 - 1 1111 1111

-1-14 00001110 - 2 1111 11Ю

-1-13 0000 1101 - 3 ЦП 1101

-1-12 0000 1100 - 4 1111 1100

-fll 0000 1011 - 5 1111 1011

-flO 00001010 - 6 nil 1010



Продолжение

Десятичное число Двоичное число Десятичное число Двоициое число

+ 9 0000 1001 - 7

+ 8 00001000 - 8

+ 7 0000 0111 - 9

+ 6 0000 0110 -10

+ 5 00000101 -И

+ 4 0000 0100 -12

3 0000 0011 -13

+ 2 0000 0010 -14

+ 1 0000 0001 -15

О 0000 0000

11 1001 11 1000 11 0111

11 оно

11 0101 11 0100 и ООН 11 0010 11 0001

Такой способ представления положительных и отрицательных чисел принято называть представлением в дополнительном коде или в форме дополнения до 2.

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

Пусть, например, требуется получить двоичное представление десятичного отрицательного числа -Ijo в дополнительном коде.

Положительное десятичное число 110 =000000012 двоичному. Инвертированный (обратный) код есть 1111111*2 После сложения с 1 + Ч

получим дополнительный код 111111112

отрицательного десятичного числа -lio.

Попробуйте сами получить аналогичное представление числа -13io и проверьте результат по приведенной выше таблице.

Проделаем еще несколько вычитаний по форме А-В=А+{-В).

Вычислим 5io-2io или бю-Ь (-2io) =3io:

5io есть OOOOOIOI3 (уменьшаемое)

-2io в дополнительном

коде есть 111IIIIO2 (вычитаемое)

В результате сложения пол^чим OOOOOOII2 (разность) и 1 переноса из старшего разряда (перенос пока оставим без внимания).



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 [ 22 ] 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60

© 2007 EPM-IBF.RU
Копирование материалов разрешено в случае наличия письменного разрешения