Команды CMPS, CMPSB, CMPSW, CMPSD
Рубрика: Архитектура PC
(Команды CPU)
6536
Опубликовано: 26.04.2017
Команды CMPS, CMPSB, CMPSW и CMPSD позволяют производить сравнение строк байтов, двухбайтных слов или двойных слов между собой. Сравнение работает аналогично команде CMP, но с некоторыми дополнительными действиями для строк.
Команда CMPS
| Синтаксис: | CMPS op1,op2 |
| Операнды: | op1 - m8, m16, m32 op2 - m8, m16, m32 |
| Назначение: | Сравнение строк |
| Процессор: | 8086+ |
| Флаги: | Флаги OF, SF, ZF, AF, PF и CF устанавливаются в соответствии с результатом. |
| Комментарий: | Команда CMPS на самом деле не является командой процессора. Когда в тексте программы встречается эта команда, компилятор вычисляет размерность ее операндов и на основании вычислений подставляет на ее место одну из реальных команд процессора CMPSB, CMPSW или CMPSD. |
| Ограничения: | Операнды должны иметь один и тот же размер |
| Примеры: |
cmps str1, es:str2 |
Команда CMPSB
| Синтаксис: | CMPSB |
| Операнды: | Нет |
| Назначение: | Сравнение строк байтов |
| Процессор: | 8086+ |
| Флаги: | Флаги OF, SF, ZF, AF, PF и CF устанавливаются в соответствии с результатом. |
| Комментарий: | Команда CMPSB сравнивает один байт из памяти по адресу DS:SI с байтом по адресу ES:DI. Аналогична по действию команде CMP. После выполнения команды, регистры SI и DI увеличиваются на 1, если флаг DF = 0, или уменьшаются на 1, если DF = 1. Если команда используется в 32-разрядном режиме адресации, то используются регистры ESI и EDI соответственно. |
| Ограничения: | Нет |
| Примеры: |
mov si,offset str1 mov di,offset str2 cld cmpsb |
Команда CMPSW
| Синтаксис: | CMPSW |
| Операнды: | Нет |
| Назначение: | Сравнение строк слов |
| Процессор: | 8086+ |
| Флаги: | Флаги OF, SF, ZF, AF, PF и CF устанавливаются в соответствии с результатом. |
| Комментарий: | Команда CMPSW сравнивает слово из памяти по адресу DS:SI со словом по адресу ES:DI. Аналогична по действию команде CMP. После выполнения команды, регистры SI и DI увеличиваются на 2, если флаг DF = 0, или уменьшаются на 2, если DF = 1. Если команда используется в 32-разрядном режиме адресации, то используются регистры ESI и EDI соответственно. |
| Ограничения: | Нет |
| Примеры: |
mov si,offset str1 mov di,offset str2 cld cmpsw |
Команда CMPSD
| Синтаксис: | CMPSD |
| Операнды: | Нет |
| Назначение: | Сравнение строк байтов |
| Процессор: | 80386+ |
| Флаги: | Флаги OF, SF, ZF, AF, PF и CF устанавливаются в соответствии с результатом. |
| Комментарий: | Команда CMPSD сравнивает двойное слово из памяти по адресу DS:SI с двойным словом по адресу ES:DI. Аналогична по действию команде CMP. После выполнения команды, регистры SI и DI увеличиваются на 4, если флаг DF = 0, или уменьшаются на 4, если DF = 1. Если команда используется в 32-разрядном режиме адресации, то используются регистры ESI и EDI соответственно. |
| Ограничения: | Нет |
| Примеры: |
mov si,offset str1 mov di,offset str2 cld cmpsd |
Комментарии (0)