Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Команды условного перехода по результату команды сравнения




Для сравнения значений двух операндов применяется команда CMP (от англ. CoMPare – сравнить). Формат команды приведен на рис.9.5.

 

Рис. 9.5. Формат команды CMP

 

Эта команда вычитает из первого операнда второй и по результатам вычитания устанавливает флаги, которые определяют отношения между операндами. Эти флаги анализируются с помощью специальных команд условного перехода, которые располагаются сразу за командой сравнения. Мнемоника команд зависит от условий, которые они определяют, и берется по табл.9.1. Размерности операндов в команде CMP должны быть одинаковыми.

Таблица 9.1. Мнемоника команд условного перехода по результату команды сравнения

Символ Английский Русский Тип операндов
E Equal Равно Любые
N Not Не Любые
G Greater Больше Числа со знаком
L Less Меньше Числа со знаком
A Above Выше Числа без знака
B Below Ниже Числа без знака

Команды условного перехода по результату команды сравнения и проверяемые ими условия приведены в табл.9.2. Через косую черту приведены команды, анализирующие одни и те же флаги и являющиеся эквивалентными.

Таблица 9.2. Команды условного перехода по результату команды сравнения

Тип операндов Команда Критерий условного перехода Значения флагов для перехода
Любые JE ZF = 1
Любые JNE ZF = 0
Со знаком JL/JNGE SF <> OF
Со знаком JLE/JNG SF <> OF или ZF = 1
Со знаком JG/JNLE SF = OF и ZF = 0
Со знаком JGE/JNL SF = OF
Без знака JB/JNAE CF = 1
Без знака JBE/JNA CF = 1 или ZF = 1
Без знака JA/JNBE CF = 0 и ZF = 0
Без знака JAE/JNB CF = 0

Пример использования команд условного перехода по результату команды сравнения:

 

MOV BX,7

MOV AX,12

CMP AX,BX

JGE m1;Переход по метке m1 если AX BX

m1:

 

Так как команды условного перехода не изменяют флагов, то после команды CMP может следовать несколько команд условного перехода, определяющих отношения между одними и теми же операндами:

 

pole DB 12,25,1,75,120

LEA BX,pole

CMP [BX],5;Сравнить элемент массива с 5

JE m1;Переход если элемент равен 5

JB m2;Переход если элемент больше 5

JA m3;Переход если элемент меньше 5

m1:

m2:

m3:

С помощью этих команд можно организовывать циклы, используя регистр CX как счетчик цикла, следующим образом:

 

MOV CX,10;Десять итераций цикла

m1: MOV AX,12

DEC CX;Уменьшение значения на единицу

CMP CX,0;Сравнение с нулем

JNE m1;Возврат на начало цикла

 





Поделиться с друзьями:


Дата добавления: 2015-10-01; Мы поможем в написании ваших работ!; просмотров: 745 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Человек, которым вам суждено стать – это только тот человек, которым вы сами решите стать. © Ральф Уолдо Эмерсон
==> читать все изречения...

2316 - | 2171 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.011 с.