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

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

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

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

00000001
11111111
--------
Результат: (1) 00000000

Игнорируя перенос (1), можно видеть, что двоичное число 11111111
эквивалентно десятичному -1 и соответственно:

0 00000000
-(+1) -00000001
---- --------
-1 11111111

Можно видеть также каким образом двоичными числами предcтавлены
уменьшающиеся числа:

+3 00000011
+2 00000010
+1 00000001
0 00000000
-1 11111111
-2 11111110
-3 11111101

Фактически нулевые биты в отрицательном двоичном числе определяют его
величину: рассмотрите позиционные значения нулевых битов как если это были
единичные биты, сложите эти значения и прибавьте единицу.
Данный материал по двоичной арифметике и отрицательным числам будет
особенно полезен при изучении гл.12 и 13.


ШЕСТНАДЦАТИРИЧНОЕ ПРЕДСТАВЛЕНИЕ
________________________________________________________________