Assembler для начинающих


Флаг переноса - часть 3


    флаг  переноса содержит  семнадцатый бит  предыдущего результата, и
    программа должна использовать это  значение при сложении следующих,
    более старших, частей чисел.
      Флаг переноса служит и для  другой важной цели. Когда программа
    выполняет вычитание, существует возможность  заема из одной позиции
    в другую.  Флаг  переноса  показывает  при  вычитании необходимость
    заема из одной части числа в другую.
      Вычитать целые    числа, в несколько слов  длиной программа может
    таким же путем, как и  складывать. Сначала вычитаются младшие части
    чисел, с получением 16-битового результата. Команда вычитания (SUB)
    устанавливает  флаг  переноса,  отражая  заем. Следующее 16-битовое
    вычитание программа выполняет с  заемом. Команда вычитания с заемом
    (SBB)  наряду  с  обычным  вычитанием  вычитает  из результата флаг
    переноса. Как и при сложении программа может осуществлять вычитание
    целых чисел произвольной длины,  используя флаг переноса в качестве
    значения заема.
      Микропроцессор 8088  трактует флаг переноса  как истинный заем,
    то есть если в результате вычитания появляется заем, микропроцессор
    устанавливает флаг переноса равным    1. Он показывает, что программа
    должна вычесть 1 из результата вычитания старших частей чисел. Если
    заема  нет,  процессор  сбрасывает    флаг  переноса  на  ноль.  Это
    означает, что программе не нужно вычитать 1 из старшей части числа.
      Микропроцессор устанавливает флаг  переноса как индикатор заема
    при расширенном вычитании. Наряду  с расширением точности программа
    может сипользовать  флаг переноса для  определения соотношения двух
    чисел.  Если флаг  переноса установлен,  вычитаемое значение больше
    уменьшаемого; если флаг переноса не установлен, вычитаемое значение
    меньше  или равно  уменьшаемому.  Это  означает, что  флаг переноса
    становится первичным  индикатором при определении  соотношения двух
    чисел: после того, как программа  вычитает два числа, флаг переноса
    указывает,    какое из  них  больше.  Таким способом    программа может
    проверять  целые числа  без  знака,  включая такие      приложения, как
    сортировка строк символов. В случае чисел со знаком для определения
    соотношения  чисел  программе  нужна  дополнительная  информация. В
    следующей  главе  в  разделе  "Условные  переходы"  обсуждаются все
    способы тестирования чисел.



- Начало -  - Назад -  - Вперед -