ХАНДЫФАР
Инструкция CMPSB/CMPSW
Сравнить память с другой памятью
CMPSB - Сравнить байт по адресу DS:SI с байтом по адресу ES:DI.
CMPSW - Сравнить слово по адресу DS:SI со словом по адресу ES:DI.
Сравнивает содержимое ячейки памяти, адресованной регистром si, с содержимым ячейки памяти, адресованной регистром di. Сравнение выполняется путём вычитания содержимого ячейки памяти, адресуемой регистром di, из содержимого ячейки памяти, адресуемой регистром si, и использования результата для установки флагов. Ни одна из ячеек памяти, используемых при вычитании, не затрагивается. Регистры si и di увеличиваются/уменьшаются в зависимости от значения флага DF. Может быть указана 8- или 16-разрядная операция.
Флаги CF, OF, SF, ZF, AF и PF устанавливаются в соответствии с временным результатом сравнения.
В качестве примера рассмотрим случай, когда у нас есть два массива из чисел и нам необходимо каждый элемент в первом массиве сравнить с соответствующим элементов второго массива. Если все элементы в массивах не равны то, вернуть в регистре ax значение -1. Если элементы били равны, то вернуть индекс на равные эелементы в регистре ax. Количество загружаемых данных указывается в регистре cx.
Инструкция CMPSB/CMPSW
Сравнить память с другой памятью
_____________________CMPSB - Сравнить байт по адресу DS:SI с байтом по адресу ES:DI.
_____________________CMPSW - Сравнить слово по адресу DS:SI со словом по адресу ES:DI.
Сравнивает содержимое ячейки памяти, адресованной регистром si, с содержимым ячейки памяти, адресованной регистром di. Сравнение выполняется путём вычитания содержимого ячейки памяти, адресуемой регистром di, из содержимого ячейки памяти, адресуемой регистром si, и использования результата для установки флагов. Ни одна из ячеек памяти, используемых при вычитании, не затрагивается. Регистры si и di увеличиваются/уменьшаются в зависимости от значения флага DF. Может быть указана 8- или 16-разрядная операция.
Флаги CF, OF, SF, ZF, AF и PF устанавливаются в соответствии с временным результатом сравнения.
В качестве примера рассмотрим случай, когда у нас есть два массива из чисел и нам необходимо каждый элемент в первом массиве сравнить с соответствующим элементов второго массива. Если все элементы в массивах не равны то, вернуть в регистре ax значение -1. Если элементы били равны, то вернуть индекс на равные эелементы в регистре ax. Количество загружаемых данных указывается в регистре cx.