Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

CMPSW Сравнение строк по словам




CMPSB Сравнение строк по байтам

CMPS Сравнение строк

СМР Сравнение

CMC Инвертирование флага переноса

CLI Сброс флага прерываний

CLD Сброс флага направления

CLC Сброс флага переноса

CBW Преобразование байта в слово

Команда CBW заполняет регистр АН знаковым битом числа, находящегося в регистре AL, что дает возможность выполнять арифметические операции над исходным операндом-байтом как над словом в регистре АХ. Команда не имеет параметров и не воздействует на флаги процессора.

 

Команда CLC сбрасывает флаг переноса CF в регистре флагов. Команда не имеет параметров и не воздействует на остальные флаги процессора.

 

Команда CLD сбрасывает флаг DF в регистре флагов, устанавливая прямое (в порядке возрастания адресов) направление выполнения операций со строками. Команда не имеет параметров и не воздействует на остальные флаги процессора.

 

Команда CLI сбрасывает флаг IF в регистре флагов, запрещая все аппаратные прерывания. Прерывания будут оставаться запрещенными до установки флага IF командой sti. На программные прерывания (команду int) флаг не действует. Команда не имеет параметров и не воздействует на остальные флаги процессора.

 

Команда CMC изменяет значение флага CF в регистре флагов на обратное. Команда не имеет параметров и не воздействует на остальные флаги процессора.

 

Команда СМР выполняет вычитание второго операнда из первого. В соответствии с результатом вычитания устанавливаются состояния флагов CF, PF, AF, ZF, SF и OF.

Сами операнды не изменяются. Таким образом, если команду сравнения записать в общем виде:

cmp операнд_1, операнд_2

то ее действие можно условно изобразить следующим образом:

операнд_1 - операнд_2 -> флаг процессора

В качестве операндов можно указывать регастр (кроме сегментного) или ячейку памяти, а в качестве второго операнда еще и непосредственное значение, однако не допускается определять оба операнда одновременно как ячейки памяти. Операнды могут быть байтами или словами и представлять числа со знаком или без знака. Обычно вслед за командой СМР

стоит одна из команд условных переходов, анализирующих состояние флагов процессора

(je - переход, если равно; jne - переход, если не равно, и т. д.).

 

Команды предназначены для операций над строками (строкой называется последовательность байтов или слов с любым содержимым). Они сравнивают по одному элементу каждой строки, осуществляя вычитание второго операнда из первого и устанавливая в соответствии с результатом вычитания флаги CF, PF, AF, ZF, SF и OF. Первый операнд адресуется через DS:SI, второй - через ES:DI. Операцию сравнения можно условно изобразить следующим образом:

(DS:SI) - (ES:DI) —> флаги процессора

После каждой операции сравнения регистры SI и DI получают положительное

(если флаг DF=0) или отрицательное (если флаг DF=l) приращение. Величина

приращения составляет 1 или 2 в зависимости от размера сравниваемых элементов.

Вариант команды CMPS имеет формат

cmps строка_1, строка_2

(что не избавляет от необходимости инициализировать регистры DS:SI и ES:DI адресами строк строка_1 и строка_2 соответственно). В этом формате возможна замена сегмента первой строки:

cmps ES:строка_1, строка_2

Рассматриваемые команды могут предваряться префиксами повторения REPE/REPZ (повторять, пока элементы равны, т. с. до первого неравенства) и REPNE/REPNZ (повторять, пока элементы не равны, т. е. до первого равенства). В любом случае выполняется не более СХ операций над последовательными элементами.

После выполнения рассматриваемых команд регистры SI и DI указывают на ячейки памяти, находящиеся за теми (если DF=0) или перед теми (если DF=l) элементами строк, на которых закончились операции сравнения.

 




Поделиться с друзьями:


Дата добавления: 2015-06-27; Просмотров: 606; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




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