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



         

Проверки кода условия


    Первая группа команд условного перехода проверяет текущее состояние
    регистра флагов.  Затем в зависимости от кодов условия команда
    делает переход (или не делает).  Команды условного перехода не
    устанавливают флаги, а только проверяют их текущее состояние.
    Ранее рассмотренные арифметические и логические команды
    устанавливают флаги.  В последующих примерах предположим, что
    команда сравнения CMP уже установила флаги.
 
      На Фиг.4.29 показаны команды условного перехода и проверяемые
    ими флаги. В строках рисунка перечислены команды условного
    перехода, а в пяти колонках показано состояние флагов. Буква X в
    любой позиции означает, что команда не проверяет флаг. Цифра 0
    означает, что этот флаг должен быть сброшен, чтобы условие было
    выполнено и переход произошел. Цифра 1 означает, что флаг должен
    быть установлен, чтобы переход произошел. Некоторые элементы
    таблицы показывают выражение, которое должно быть истинно, чтобы
    переход произошел. Так сделано для арифметических переходов, и мы
    обсудим их далее более подробно.
 
      На Фиг.4.29 условные переходы разделены на три группы:
    непосредственно проверяющие один из флагов; делающие арифметическое
    сравнение без знака; делающие арифметическое сравнение со знаком.
 
      На Фиг.4.29а показана проверка отдельных флагов. Условный
    переход может проверить каждый из этих пяти флагов непосредственно
    на 0 или 1. Проверка флага переноса показана на рисунке в группе
    арифметики без знака, поскольку она имеет еще и арифметический
    смысл. Заметим, что многие команды условного перехода имеют более
    одной мнемоники, если даже выполняется одна и та же проверка.
    Например, проверку флага нуля осуществляет команда JZ (переход,
    если результат операции равен нулю). Однако команда JE (переход,
    если равно) также порождает ту же команду. Следующая
    последовательность поясняет смысл этого:
 
       CMP AX, BX
       JE LABEL



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