Команды работы со строками работают с большими структурами данных в памяти, такими, как алфавитно-цифровые строки символов. Смотри также раздел, посвященный Вводу/Выводу, для получения более подробной информации относительно команд Ввода/Вывода строк (иногда их называют блочными командами Ввода/Вывода).
Работа со строками может выполняться посредством команд работы со строками (которые выполняют только одну итерацию для каждой операции) совместно с другими возможностями команд процессора, такими, как префиксы повторения. Команды работы со строками :
MOVS - Переслать строку.
CMPS - Сравнить строки.
SCAS - Сканировать строку.
LODS - Загрузить строку.
STOC - Запомнить строку.
После выполнения команды работы со строкой, регистры строки-источника и строки-приемника указывают на следуюшие элементы в этих строках. Эти регистры автоматически увеличивают или уменьшают свои значения на количество байт, занятых каждым элементом строки. Элементом строки может быть байт, слово или двойное слово. Строчными регистрами являются :
ESI - Регистр индекса источника.
EDI - Регистр индекса приемника.
Операции работы со строками могут начинаться со старших адресов и выполняться по направлению к младшим адресам, или могут начинаться с младших адресов и выполняться по направлению к старшим адресам. Направление выполнения управляется флагом :
DF - Флаг направления.
Если флаг DF очищен, регистры увеличиваются. Если флаг установлен, регистры уменьшаются. Следующие команды устанавливают и очищают флаг :
STD - Команда установки флага направления.
CLD - Команда очистки флага направления.
Для того, чтобы выполнить операции более чем над одним элементом строки, должны использоваться префиксы повторения, такие как:
REP - Повторять до тех пор, пока регистр ECX не равен нулю.
REPE/REPZ - Повторять до тех пор, пока регистр ECX не равен нулю и установлен флаг ZF.
REPNE/REPNZ - Повторять до тех пор, пока регистр ECX не равен нулю и флаг ZF очищен.
Исключения и прерывания, которые могут возникать в процессе выполнения команд работы со строками, сохраняют регистры в таком состоянии, чтобы команда работы со строкой могла быть повторена. Регистры источника и приемника указывают на следующие элементы строк, регистр EIP указывает на команду работы со строкой и регистр ECX содержит значение, сохраненное в нем со времени последней успешной итерации. Все, что необходимо для повторного запуска операции - это обработать прерывание или зафиксировать источник исключения, затем выполнить команду IRET.