русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Инструкции обработки строк


Дата добавления: 2015-06-12; просмотров: 646; Нарушение авторских прав


Пять базовых строковых операций, называемых примитивами, позволяют оперировать со строками байтов или слов по одному элементу (байту или слову) за раз. Эти операции могут обрабатывать строки длиной до 64К. Операции со строками обеспечивают пересылку, сравнение, сканирование строк по значению, а также пересылку элементов строки в аккумулятор или из него. Этим базовыми инструкциям может предшествовать однобайтный префикс, наличие которого обеспечивает многократное повторение инструкции аппаратным способом, что гарантирует более высокое быстродействие, чем в случае программного цикла. Процесс повторения может быть прекращен при возникновении различных ситуаций, а сама повторяемая операция может быть как прервана, так и возобновлена.

Строковые инструкции во многом похожи друг на друга. Они могут иметь операнд-приемник, операнд-источник или оба эти операнда. Аппаратно предполагается, что исходная строка размещена в текущем сегменте данных (для ее адресации используется регистр DS); для изменения этого допущения может использоваться однобайтный префикс изменения сегмента. Строка-приемник должна размещаться в текущем экстра сегменте (для ее адресации используется регистр ES). Для проверки того, что является элементом строки (байт или слово), Ассемблер проверяет атрибуты операндов инструкции. Однако, в действительности эти операнды для адресации строк не используются. Для адресации используются регистры SI, который предполагается загруженным значением смещения строки-источника относительно содержимого DS, и DI, содержимое которого трактуется как смещение строки-приемника относительно содержимого ES. Все эти регистры должны быть загружены требуемыми значениями до выполнения строковой операции, для чего могут использоваться инструкции LDS, LES и LEA.

Строковые инструкции автоматически модифицируют содержимое регистров SI и/или DI для обеспечения возможности обработки следующего элемента строки. Значение флага направления DF определяет, будут ли эти индексные регистры автоматически увеличиваться (DF=0) или автоматически уменьшаться (DF=1) при переходе к следующему элементу строки. При обработке строк байтов содержимое SI и/или DI изменяется на 1; в случае строк слов — на 2.



Использование регистров и флагов строковыми инструкциями:

u SI —смещение строки-источника;

u DI — смещение строки-приемника;

u CX — счетчик повторений;

u AL/AX — значение сканирования: приемник для LODS, источник для STOS;

u DF 0 — автоматическое увеличение SI;

u DI 1 — автоматическое уменьшение SI;

u ZF — признак прекращения сканирования/сравнения.

При использовании префикса повторений содержимое регистра CX уменьшается на 1 после каждого повторения строковой инструкции. Регистр CX должен быть загружен требуемым числом повторений до выполнений строковой операции. ЕслиCX содержит 0, строковая операция не выполняется, и управление передается следующей инструкции.

 

 



<== предыдущая лекция | следующая лекция ==>
TEST приемник,источник | REP/REPE/REPZ/REPNE/REPNZ


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.42 сек.