Сравнение и проверка
- СМР сравнить два операнда
Инструкция СМР сравнивает первый и второй операнды, вычитая второй из первого, сбрасывая результаты и устанавливая соответствующие флаги в регистре EFLAGS. Можно представлять инструкцию СМР как условную часть С-оператора if. В табл. 6.4 приведены различные флаги и значения, которым они соответствуют при выполнении инструкции СМР.
Таблица 6.4. Результирующие значения и установки флажков инструкции СМР
Результат (сравнения первого операнда со вторым) |
Установки флажков регистра EFLAGS |
Установки флажков руководства Intel |
Равно Меньше чем |
ZR = 1 PL != OV |
ZF=1 SF != OF |
Больше чем |
ZR = 0 and PL = 0V |
ZF = 0 и SF = OF |
Не равно |
ZR = 0 |
ZF = 0 |
Больше чем или равно |
PL = OV |
SF = OF |
Меньше чем или равно |
ZR = 1 или PL != 0V |
ZF = 1 или SF != OF |
- TEST логическое сравнение
Инструкция TEST выполняет поразрядную операцию "логическое И" над своими операндами и устанавливает флажки PL, ZR и РЕ (SF, ZF и PF для руководств Intel) соответственно. Инструкция TEST проверяет, было ли установлено разрядное значение.