Ассемблер и программирование для IBM PC



         

ГЛАВА 1. Введение в семейство персональных компьютеров IBM PC - часть 4


0 + 0 = 0 1 + 0 = 1 1 + 1 = 10 1 + 1 + 1 = 11

Ассемблер для IBM PC 4

Обратное внимание на перенос единичного бита в последних двух операциях. Теперь, давайте сложим 01000001 и 00101010. Букву A и символ *? Нет, число 65 и число 42:

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

01000001 65 00101010 42 01101011 107

Проверьте, что двоичная сумма 01101011 действительно равна 107. Рассмотрим другой пример:

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

00111100 60 00110101 53 01110001 113

Отрицательные числа

Все представленные выше двоичные числа имеют положитель ные значения, что обозначается нулевым значением самого левого (старшего) разряда. Отрицательные двоичные числа содержат единичный бит в старшем разряде и выражаются двоич ным дополнением. Т.е., для представления отрицательного двоичного числа необходимо инвертировать все биты и прибавить 1. Рассмотрим пример:

Число 65: 01000001 Инверсия: 10111110 Плюс 1: 10111111 (равно -65)

Если прибавить единичные значения к числу 10111111, 65 не получится. Фактически двоичное число считается отрицатель ным, если его старший бит равен 1. Для определения абсолют ного значения отрицательного двоичного числа, необходимо повторить предыдущие операции: инвертировать все биты и прибавить 1:

Двоичное значение: 10111111 Инверсия: 01000000 Плюс 1: 01000001 (равно +65)

Сумма +65 и -65 должна составить ноль:

01000001 (+65) 10111111 (-65) (1)00000000

Ассемблер для IBM PC 5

Все восемь бит имеют нулевое значение. Перенос единичного бита влево потерян. Однако, если был перенос в знаковый pазряд и из разрядной сетки, то результат является кор ректным. Двоичное вычитание выполняется просто: инвентируется знак вычитаемого и складываются два числа. Вычтем, например, 42 из 65. Двоичное представление для 42 есть 00101010, и eго двоичное дополнение: - 11010110:

65 01000001 +(-42) 11010110 23 (i)00010111

Результат 23 является корректным. В рассмотренном примере произошел перенос в знаковый разряд и из разрядной сетки. Если справедливость двоичного дополнения не сразу понят на, рассмотрим следующие задачи: Какое значение необходимо прибавить к двоичному числу 00000001, чтобы получить число 00000000? В терминах десятичного исчисления ответом будет -1. Для двоичного рассмотрим 11111111:




Содержание  Назад  Вперед