Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по теории автоматов.doc
Скачиваний:
105
Добавлен:
01.05.2014
Размер:
3.35 Mб
Скачать

Суммирование чисел при использовании обратного кода.

При данном способе осуществляется безусловное суммирование всех разрядов числа знаковые, перенос из старшего разряда прибавляется к результату суммирования.

Сумма получается в обратном виде:

+23 1 010111

-18 101101

000100

000101 → +5 в обратном коде.

-23 0 101000

+18 000010

111010 → -5 в обратном коде.

Осуществляется безусловное суммирование всех разрядов, а результат в дополнительном коде.

Дополнительный код.

+23 1 010111

-18 101110

000101 → +5 в дополнительном коде.

-23 101001

+18 101110

111011 → -5 в дополнительном коде.

Суммирование в дополнительном коде наиболее быстрое, в прямом коде самые медленные. Использование обратного кодирования позволяет производить преобразования из прямого в обратное и наоборот.

А

В

OA

YA

Yi

Xi

23 010111

18 010010 переполнение разряда сети

101001

Используются модифицированные разряды.

00 +

11 -

0

переполнение

1 +

10 -

Модифицированный код.

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

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

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

+23 0010111

+18 0010010

0101001 положительное переполнение.

-23 1101000

1100101

1 1010101

1010110 переполнение

Операционный автомат (неоптимальный), сумматор накапливающий.

X1

Y1

X1

Y8

Y9

X2

X3

X4

Предполагаем, что А, В, С представлены в прямом коде, суммировать будем представленные в обратном коде.

А, В, С представлены в модифицированном коде.

У0– на входе регистра – сигнал записи (микрооперация записи).

У0 - У2– на входах сумматора – микрооперация сброса и суммирования накапливающего сумматора.

У8, У9– положительное и отрицательное переполнение.

Остальные микрооперации управляются шиной.

Х1, Х2– логические условия, показывающие значения операндов А, В соответственно.

По начальной микрооперации У0осуществляется прием А, В – обновление сумматора.

У0: RGA : = A

RGB : = B

SM : = 0

Y1, Y2: SM : = RGA

Y3, Y2: SM [0,1] : = RGA [0,1]

SM [2:k] : = ¬ RGA [2:k]

Y4, Y2: SM : = SM + RGB

Y5, Y2: SM : = SM + RGB [0,1], ¬ RGB [2:k]

Y6: C : = SM

Y7: C : = SM [0,1], ¬ SM [2:k]

Y8:Y8 : = 1 (положительное переполнение)

Y9:Y9 : = 1 (отрицательное переполнение)

Положительные и отрицательные переполнения по У0 сбрасываются. Уnможно записать новое значение в регистре А, В вместо У0.