Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...
Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...
Топ:
Устройство и оснащение процедурного кабинета: Решающая роль в обеспечении правильного лечения пациентов отводится процедурной медсестре...
Комплексной системы оценки состояния охраны труда на производственном объекте (КСОТ-П): Цели и задачи Комплексной системы оценки состояния охраны труда и определению факторов рисков по охране труда...
Техника безопасности при работе на пароконвектомате: К обслуживанию пароконвектомата допускаются лица, прошедшие технический минимум по эксплуатации оборудования...
Интересное:
Искусственное повышение поверхности территории: Варианты искусственного повышения поверхности территории необходимо выбирать на основе анализа следующих характеристик защищаемой территории...
Распространение рака на другие отдаленные от желудка органы: Характерных симптомов рака желудка не существует. Выраженные симптомы появляются, когда опухоль...
Как мы говорим и как мы слушаем: общение можно сравнить с огромным зонтиком, под которым скрыто все...
Дисциплины:
|
из
5.00
|
Заказать работу |
Содержание книги
Поиск на нашем сайте
|
|
|
|
Цель работы: Объяснить назначение специальных цепочечных команд, используемых для обработки специальных символьных данных.
Общие сведения.
Для обработки строковых данных ассемблер имеет пять команд обработки строк:
MOVS - переслать один байт или одно слово из одной области памяти в другую;
LODS - загрузить из памяти один байт в регистр AL или одно слово в регистр АХ;
STOS - записать содержимое регистра AL или АХ в память;
CMPS - сравнить содержимое двух областей памяти размером в один байт или в одно слово;
SCAS - сравнить содержимое регистра AL или АХ с содержимым памяти.
Префикс REP позволяет этим командам обрабатывать строки любой длины. Префикс кодируется непосредственно перед цепочечной командой, например REP MOVS В. Для использования префикса REP необходимо установить начальное значение в регистре СХ. При выполнении цепочечной команды с префиксом REP происходит уменьшение на одно значение в регистре СХ до 0. Таким образом, можно обрабатывать строки любой длины. В следующем примере выполняется пересылка 20 байт из STRING1 в STRING2. Предположим, что оба регистра DS и ES инициализированы адресом сегмента данных:
STRING1 DB 20DUP('*')
STRING2 DB 20DUP (")
……
CLD; сброс файла DF
MOV СХ, 20; счетчик на 20 байт
LEA DI, STRING2; адрес "куда"
LEA SI, STRING1; адрес "откуда"
REP MOVSB; переслать данные
Для команды LODS адрес памяти определяется регистрами DS:SI. В зависимости от значения флага DF происходит увеличение или уменьшение значения в регистре SI. Поскольку одна команда STOS также увеличивает или уменьшает адрес в регистре DI на 1 для байта или на два для слова. Практическая польза команды STOS с префиксом REP- инициализация области данных конкретным значением. Длина области (в байтах или словах) загружается в регистр СХ. Команда CMPS сравнивает содержимое одной области памяти (адресуемой регистрами DS: SI) с содержимым другой области (адресуемой регистрами ES: DI). В зависимости от флага DF команда CMPS также увеличивает или уменьшает адреса в регистрах SI и DI на 1 для байта или на два для слова. При использовании префикса REP в регистре СХ должно находится значение длины сравниваемых полей. Команда CMPS может сравнивать любое число байтов или слов.
Рассмотрим процесс сравнения двух строк содержащих их имена Jean и JOAN. Сравнение побайтово слева направо приводит к следующему
J: J равно
Е: 0 не равно (Е<0)
А: А равно
N: N равно
Сравнение всех четырех байтов заканчивается сравнением N:N - равно/нуль. Так как имена " не равны ", операция должна прекратиться, как только будет обнаружено условие " не равно". Для этих целей команда REP имеет модификацию. REPE, которая повторяет сравнение до тех пор, пока сравниваемые элементы равны или регистр СХ не равен нулю. Кодируется повторяющееся однобайтное сравнение следующим образом:
REPE CMPSB.
Команда SCAS отличается от команды CMPS тем, что сканирует строку на определенное значение байта или слова. Команда SCAS сравнивает содержимое области памяти (адресуемой регистрами ES:DI) с содержимым регистра AL или АХ. В зависимости от значения флага DF команда SCAS также увеличивает или уменьшает адрес в регистре DI на 1 для байта или на 2 для слова. При использовании префикса REP и значения длины в регистре СХ команды SCAS может сканировать строки другой длины. Команда SCAS особенно полезна в текстовых редакторах, где программа должна сканировать строки, выполняя поиск знаков пунктуации. Так как команда SCAS В должна продолжать сканирование до тех пор, пока результат сканирования "не равно" или регистр СХ не равен нулю, то используется префикс REPNE:
REPNE SCAS В.
Содержание задания:
1.Замените в строке STRING символ & на символ пробела
STRLEN EQIU 15: длина поля STRING
STRING DB ‘THE TIVE & IS NOW’
2. Имеются следующие определения:
DATASG SEGMENT PARA
CONAME DB 'SPASE EXPLORES INS'
PRLINE DB20DUP(")
Используя команды обработки строк, выполнить:
а) пересылку данных из CONAME в PRLINE слева направо;
б) пересылку данных из CONAME в PRLINE справа налево;
в) загрузку третьего и четвертого байтов области CONAME в регистр АХ;
г) сохранение содержимого регистра АХ в области по адресу PRLINE +5;
д) сравнение данных в области CONAME и PRLINE;
е) сканирование области CONAME и поиск в ней символа " пробел ".
Если символ будет найден, то переслать его в регистр ВН.
Лабораторная работа № 5
|
|
|
История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...
Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...
Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...
© cyberpediasu.com 2017-2026 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!