Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
В системе команд микропроцессора есть более 30 команд, управляющих переходами на метки по условию. Мнемокод этих команд: jc метка, jcc метка, jccc метка и jcccc метка, где j от слова jump (прыжок), а с, сс, ссс и сссс – определяют конкретные условия. Метка может находиться только внутри текущего сегмента кода.
При выполнении команды условного перехода проверяются:
- или отношение между операндами со знаком («больше - меньше»);
- или отношение между операндами без знака («выше – ниже»);
- или состояния арифметических флагов: zf (zero flag – флаг нуля), sf (sign flag – флаг знака), cf (carry flag – флаг переноса), of (overflow flag – флаг переполнения), pf (parity flag – флаг паритета);
- или равно ли (неравно) нулю содержимое регистра ecx/cx.
Итак, источниками условия могут быть:
- команда, изменяющая состояние флагов. Команды условного перехода и состояния флагов показаны в таблице 1.
- команда сравнения cmp операнд_1 операнд_2 вычитает операнд_2 из
операнда_1 и по результату вычитания устанавливает флаги. Команды
условного перехода для команды cmp представлены в таблице 2.
- содержимое регистра ecx/cx. Синтаксис команды условного перехода с использованием регистров ecx/cx следующий:
jcxz метка - переход, если в сх ноль;
jecxz метка - переход, если в eсх ноль.
Таблица 1.
Название флага | Номер бита в регистре eflags/flags | Команда условного перехода | Значение флага для осуществле- ния перехода |
Флаг переноса cf | jc | cf = 1 | |
Флаг четности рf | jp | pf = 1 | |
Флаг нуля zf | jz | zf = 1 | |
Флаг знака sf | js | sf = 1 | |
Флаг переполнения of | jo | of = 1 | |
Флаг переноса cf | jnc | cf = 0 | |
Флаг четности рf | jnp | pf = 0 | |
Флаг нуля zf | jnz | zf = 0 | |
Флаг знака sf | jns | sf = 0 | |
Флаг переполнения of | jno | of = 0 |
Таблица 2.
Дата публикования: 2014-12-10; Прочитано: 301 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!