Двоичное дополнение

    Для изображения как положительных, так и отрицательных чисел 8088

    применяет арифметику двоичного дополнения.  В такой знакопеременной

    арифметике самый левый бит целого числа указывает на его знак.  По-

    ложительные числа имеют 0 в старшем бите, а отрицательные - 1.  По-

    ложительные числа имеют одинаковое значение в знаковой и без-

    знаковой арифметике.  У отрицательных же значение иное.  Для того

    чтобы сделать число отрицательным, изменить его знак на минус, оно

    дополняется и результат увеличиваетя на единицу.  В 4-х битовом

    примере 5 имеет значение 0101B, в то время как -5 равно 1011B.

    Пример на Фиг.  2.4 показывает этот метод.

 

      Пример на Фиг.    2.5 показывает единственность нуля в арифметике

    двоичного дополнения.  То есть -0 равен 0.  Для любого n-битового

    числа в системе с двоичным дополнением наибольшее значение сос-

    тавляет 2**(n-1)-1, а наименьшее -2**(n-1).  Ноль - единственен.  В

    4-х битовой системе наибольшее число, как показано на Фиг.    2.6,

    равно 7, а наименьшее -8.

 

    _________________________

      5        =       0101B

 

    Для изменения знака:

     Дополняем           1010B

     Добавляем 1       0001B

                   -----         __________________________________

     -5        =       1011B       0            =       0000B

 

    Для изменеия знака:          Для изменения знака:

     Дополняем           0100B          Дополняем           1111B

     добавляем 1       0001B      Добавляем 1       0000B

                   -----                        -----

      5     =            0101B          -0            =       0000B    =    0

    _________________________    __________________________________

    Фиг. 2.4 Двоичное допол-     Фиг. 2.5  То же самое с нулем

           нение 5

 

      Как мы увидим позднее, процессор 8088 может работать с одним и

    тем же целым как со значением имеющим или не имеющим знак.    Выбор

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

    программа работает в арифметике со знаком, процессор 8088 применяет

    при проведении операций двоичное дополнение.

 

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

      -------------------------------------------------

          7      0111          -1   1111

          6      0110          -2   1110

          5      0101          -3   1101

          4      0100          -4   1100

          3      0011          -5   1011

          2      0010          -6   1010

          1      0001          -7   1001 Фиг. 2.6 Числа

          0      0000          -8   1000     с  двоичным

      -------------------------------------------------   дополнением