"Ассемблер и программирование для IBM PC. (IBM PC assembler language and programming)" - читать интересную книгу автора (Абель Питер, Переводчик: Ю.В.Сальников)


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

Все восемь бит имеют нулевое значение. Перенос единичного бита влево
потерян. Однако, если был перенос в знаковый pазряд и из разрядной сетки,
то результат является корректным.