Хелпикс

Главная

Контакты

Случайная статья





Команды обработки строк. Свойства операций над строками.



Команды обработки строк. Свойства операций над строками.

Часто бывает необходимо переслать или сравнить поля данных, которые превышают по длине одно слово.

Например, необходимо сравнить описания или имена для того, чтобы отсортировать их в восходящей последовательности. Элементы такого формата известны как строковые данные и могут являться как символьными, так и числовыми. Для обработки строковых данных Ассемблер имеет пять команд обработки строк:

· MOVS — переслать один байт или одно слово из одной области памяти в другую;

· LODS — загрузить из памяти один байт в регистр AL или одно слово в регистр AX;

· STOS — записать содержимое регистра AL или AX в память;

· CMPS — сравнить содержимое двух областей памяти, размером в один байт или в одно слово;

· SCAS — сравнить содержимое регистра AL или AX с содержимым памяти.

Префикс REP позволяет этим командам обрабатывать строки любой длины.

Цепочечная команда может быть закодирована для повторяющейся обpаботки одного байта или одного слова за одно выполнение. Например, можно выбрать «байтовую» команду для обработки строки с нечетным числом байт или «двухбайтовую» команду для обработки четного числа байт.

Например, можно кодировать операнды для команды MOVS, но опустить их для MOVSB и MOVSW. Эти команды предполагают, что pегистры DI и SI содержат относительные адреса, указывающие на необходимые области памяти (для загрузки можно использовать команду LEA). Регистр SI обычно связан с регистром сегмента данных — DS:SI. Регистр DI всегда связан с регистром дополнительного сегмента — ES:DI. Следовательно, команды MOVS, STOS, CMPS и SCAS требуют инициализации регистра ES (обычно адресом в регистре DS).

 



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.