Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТА_конспект.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
2.82 Mб
Скачать

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

Алгоритм выполнения суммирования сложения:

Он подразумевает предварительный анализ знаков и анализ модулей.

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

+23

010111

-18

110010

000101

-23

110111

+18

010010

100101

23>18

→ +5

23>18

→ -5

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

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

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

+ 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.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]