October 16 2017 23:07:40
Навигация
Авторизация
Логин

Пароль



Вы не зарегистрированы?
Нажмите здесь для регистрации .

Забыли пароль?
Запросите новый здесь.
Команды операций со строками символов
ПРОЦЕССОРЫ ОБЩЕГО НАЗНАЧЕНИЯ И СИСТЕМЫ НА ИХ ОСНОВЕ

Если перед командами отсутствует префикс повторения, то соответствующие операции выполняются только для одного символа в строке, адресуемого содержимым регистров SI, DI. Префиксы повторения REP, REPE(REPZ) и RERNE(REPNZ) обеспечивают последовательное выполнение команд над символами строки. При этом количество повторений определяется содержимым регистра ЕСХ или выполнением определенного условия. Так как регистр ЕСХ имеет 32 разряда, то максимальная длина обрабатываемых строк составляет 232 символа. Префикс REP используется для последовательного выполнения команд LODS, STOS, INS, OUTS, MOVS, префиксы REPE (синоним REPZ), REPNE (синоним REPNZ) используются с командами CMPS и SCAS.

Таблица 2.20 Команды операций со строками символов

Синтаксис команды Операция
LODS (B,W,D) В, W или D (строка-источник) ® AL, AX или ЕАХ
STOS
MOVS
INS
OVT
REP
(B,W,D)
(B,W,D)
(B,W,D)
(B,W,D)
AL, AX или ЕАХ ® В, W или D (строка-приемник)
В, W или D (строка-источник) ® В, W или D (строка-приемник)
port (DX) ® В, W или D (строка-приемник)
В, W или D (строка-источник) ® port (DX)
Префикс повторения, n=(ЕСХ)
SCAS

CMPS

REPE
REPNE
(B,W,D)

(B,W,D)

(REPZ)
(REPNZ)
В, W или D (строка-источник) - В, W или D (строка-приемник)
установка признаков OF,SF,AF,ZF,PF,CF
AL, АХ или ЕАХ - В, W или D (строка-приемник)
установка признаков OF,SF,AF,ZF,PF,CF
Префикс повторения до установки ZF=1
Префикс повторения до установки ZF=10

Команда LODS осуществляет загрузку символа из строки-источника в аккумулятор (AL, АХ или ЕАХ). Команда STOS заносит содержимое аккумулятора в качестве символа в строку-приемник. Команда MOVS пересылает символ из строки-источника в строку-приемник. При наличии префикса REP эти команды повторяются n раз, где n = (ЕСХ). В результате после выполнения команды REP LODS в аккумулятор будет помещен n-й символ строки-источника, а после REP STOS содержимое аккумулятора будет введено n раз в качестве n символов строки-приемника. Команда REP MOVS осуществляет пересылку n символов из строки-источника в строку-приемник.

Команды ввода-вывода символов INS и OUTS выполняют ввод символа в строку-приемник или вывод символа из строки-источника. Номер адресуемого порта задается содержимым регистра DX. Команды с префиксом REP INS и REP OUTS осуществляют ввод последовательности из n символов в строку-приемник или их вывод из строки-источника. Выполнение этих команд в защищенном режиме производится, как и команд IN, OUT, в зависимости от значения уровней привилегий CPL и IOPL.

При выполнении команды сравнения CMPS происходит вычитание символа строки-приемника из символа строки-источника с установкой соответствующих признаков. Команда сканирования SCAS производит аналогичное вычитание символа строки-приемника из содержимого аккумулятора. Установка признаков для команд CMPS, SCAS выполняется так же, как для команды СМР (см. табл. 2.17). Результат вычитания в командах CMPS, SCAS не сохраняется, поэтому эти команды используются для сравнения значений символов двух строк между собой или сравнения символа строки-приемника и эталонного символа, размещенного в аккумуляторе.

Комментарии
Нет комментариев.
Добавить комментарий
Пожалуйста, залогиньтесь для добавления комментария.
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, авторизуйтесьили зарегистрируйтесь для голосования.

Нет данных для оценки.

Время загрузки: 0.03 секунд 2,254,142 уникальных посетителей