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


         

Проверки кода условия - часть 3


    условия, которые могут быть проверены: меньше (JL), меньше или
    равно (JLE), больше (JG), больше или равно (JGE). Другие четыре
    мнемоники - отрицания этих четырех. В случае арифметики со знаком
    ассемблер использует мнемонику в названии команд "меньше" (less) и
    "больше" (greater). Далее мы увидим, что для арифметики без знака
    ассемблер использует мнемонику "выше" (above) и "ниже" (below).
 
      Арифметические выражения можно понять, используя их вместе с
    командой CMP. Например,
 
      CMP   AX,BX
      JL    LABEL
 
      Преход произойдет, если содержимое регистра AX меньше
    содержимого регистра BX. Вы можете читать комбинацию команд
    сравнения и условного перехода вместе, как один оператор: операнд
    результата встречается первым, затем идет условный оператор, а за
    ним следует исходный операнд. Другой пример:
 
      CMP    CX,WORD_IN_MEMORY
      JNLE   LABEL
      - можно прочитать так: "переход, если содержимое регистра CX не
    меньше, чем, или равен содержимому ячейки памяти WORD_IN_MEMORY.
    Этот прием можно использовать для определения значения любой команды
    арифметического перехода, учитывающей знак или не учитывающей.
 
      Как показано на Фиг.4.29б арифметические сравнения со знаком
    проверяют одновременно несколько флагов. Фактически каждая из этих
    команд проверяет некоторую комбинацию флагов переполнения, знака,
    и, возможно, флага нуля. Например, в команде JL требуется, чтобы
    флаги переполнения и знака имели разные значения. Если они имеют
    одинаковое значение, первый операнд не был меньше второго.
    Рассмотрим эту операцию несколько подробнее, чтобы понять работу
    арифметических сравнений.
 
      Когда сравниваются два числа со знаком, возможны четыре
    комбинации флагов знака и переполнения. Рассмотрим каждую из
    четырех комбинаций, чтобы определить какое состояние операндов
    привело к данному результату. Предположим, что в каждом случае



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