Команды предназначены для операций над строками (строкой называется последовательность байтов или слов памяти с любым содержимым). Они сравнивают содержимое регистра AL (в случае операций над байтами) или АХ (в случае операций над словами) с содержимым ячейки памяти по адресу, находящемуся в паре регистров ES:DI. Операция сравнения осуществляется путем вычитания содержимого ячейки памяти из содержимого AL или АХ. Результат операции воздействует на регистр флагов, но не изменяет ни один из операндов. Таким образом, операцию сравнения можно условно изобразить следующим образом:
АХ или AL - (ES:DI) -» флаги процессора
После каждой операции сравнения регистр DI получает положительное (если флаг DF=0) или отрицательное (если флаг DF=1) приращение. Величина приращения составляет 1 или 2 в зависимости от размера сравниваемых элементов.
Вариант команды SCAS имеет формат
seas строка
(что не избавляет от необходимости инициализировать регистры ES:DI адресом строки строка; операнд лишь позволяет ассемблеру определить по описанию поля данных строка размерность сравниваемых данных - байт или слово). Замена сегментного регистра (ES), через который адресуется строка, невозможна.
Рассматриваемые команды могут предваряться префиксами повторения REPE/REPZ (повторять до первого неравенства) и REPNE/REPNZ (повторять до первого равенства). В любом случае выполняется не более СХ операций над последовательными элементами.
После выполнения рассматриваемых команд регистр DI указывает на ячейку памяти, находящуюся за тем (если DF=0) или перед тем (если DF=1) элементом строки, на котором закончились операции сравнения.