Главная Кремниевые микросхемы 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 переноса из старшего разряда (перенос пока оставим без внимания). |
© 2007 EPM-IBF.RU
Копирование материалов разрешено в случае наличия письменного разрешения |