Книга: Цифровые вычислительные устройства и микропроцессоры приборных комплексов

Коррекция 0 1 1 0

Результат 0 0 1 1

Пример 1.5 . Сложить десятичные двоично-кодированные числа (BCD-числа), расположенные в A и R7:

ADD A,R7 ; двоичное сложение

DA A ; коррекция результата

Алгебраическое сложение с использованием дополнительного кода . Для сложения чисел со знаком необходимо отрицательное число перевести в дополнительный код. В двоичной системе счисления дополнительный код отрицательного числа формируется по следующему правилу: инвертируются (путем замены 0 на 1 и 1 на 0) цифры всех разрядов, кроме знакового, и в младший разряд прибавляется единица. Например, если =1 101102 , то = 1 010102 (знаковые разряды выделены полужирным шрифтом). Обратное преобразование из дополнительного кода в прямой код производится по тому же правилу.

Рассмотрим примеры выполнения операции сложения.

Пусть =0 10110, =1 01101.

Переносы 1 1 1 1

Первое слагаемое 0 1 0 1 1 0

Второе слагаемое 1 1 0 0 1 1

Сумма 0 0 1 0 0 1

Как указывалось выше, перенос, возникающий из знакового разряда, отбрасывается.

Изменим на обратный знаки слагаемых (по отношению к предыдущему примеру): =1 10110, =0 01101. Очевидно, ожидаемый ответ = 1 01001.

Переносы 1

Первое слагаемое 1 0 1 0 1 0

Второе слагаемое 0 0 1 1 0 1

Сумма 1 1 0 1 1 1

Сумма 1 0 1 0 0 1

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

Для вычитания 8-разрядных чисел без знака может быть использовано выражение , где – поразрядная инверсия . Другой способ вычитания может быть основан на следующем выражении: .

Пример 1.6 . Вычитание байтов. Операция вычитания может быть выполнена двумя способами: переводом вычитаемого как отрицательного числа в дополнительный код с последующим сложением; переводом уменьшаемого в обратный код с последующей инверсией суммы.

Пусть требуется вычесть из A содержимое регистра R6. Вычитание выполнить в соответствии с выражением . Установка флага C после выполнения сложения будет свидетельствовать об отрицательном переполнении.

CPL A ; инверсия аккумулятора

ADD A,R6 ; сложение

CPL A ; инверсия суммы (получение разности)

Пример 1.7 . Получить разность 2-байтных чисел без знака. Операнды располагаются в РПД. Адрес уменьшаемого хранится в R1, а вычитаемого – в R0. Результат поместить на место уменьшаемого:

; вычисление Z = X–Y

; X, Y – РПД

К-во Просмотров: 395
Бесплатно скачать Книга: Цифровые вычислительные устройства и микропроцессоры приборных комплексов