КАТЕГОРИИ: Архитектура-(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) |
Команда сравнения строк. Использование команд условного перехода
Операция сравнения цепочек Команды, реализующие эту операцию-примитив, производят сравнение элементов цепочки-источника с элементами цепочки-приемника. Здесь ситуация с набором команд и методами работы с ними аналогична операции-примитиву пересылки цепочек. ASM предоставляет программисту четыре команды сравнения цепочек, работающие с разными размерами элементов цепочки: cmps адрес_приемника,адрес_источника(CoMPare String) — сравнить строки; cmpsb (CoMPare String Byte) — сравнить строку байт; cmpsw (CoMPare String Word) — сравнить строку слов; cmpsd (CoMPare String Double word) — сравнить строку двойных слов. Команда cmps Синтаксис команды cmps: cmps адрес_приемника,адрес_источника Здесь: адрес_источника определяет цепочку-источник в сегменте данных. Адрес цепочки должен быть заранее загружен в пару ds:si; адрес_приемника определяет цепочку-приемник. Цепочка должна находиться в дополнительном сегменте, и ее адрес должен быть заранее загружен в пару es:di. Алгоритм работы команды cmps заключается в последовательном выполнении вычитания (элемент цепочки-источника — элемент цепочки-получателя) над очередными элементами обеих цепочек. Принцип выполнения вычитания командой cmps аналогичен команде сравнения cmp. Она, так же, как и cmp, производит вычитание элементов, не записывая при этом результата, и устанавливает флаги zf, sf и of. После выполнения вычитания очередных элементов цепочек командой cmps, индексные регистры si и di автоматически изменяются в соответствии со значением флага df на значение, равное размеру элемента сравниваемых цепочек. Существует возможность еще больше конкретизировать информацию о причине, приведшей к окончанию операции сравнения. Сделать это можно с помощью команд условной передачи управления (табл. 1 и 2). Таблица 1. Сочетание команд условной передачи управления с результатами команды cmps (для чисел со знаком) Причина прекращения операции сравнения Команда условного перехода, реализующая переход по этой причине операнд_источник > операнд_приемник jg операнд_источник = операнд_приемник je операнд_источник <> операнд_приемник jne операнд_источник < операнд_приемник jl операнд_источник <= операнд_приемник jle операнд_источник >= операнд_приемник jge Таблица 2. Сочетание команд условной передачи управления с результатами команды cmps (для чисел без знака) Причина прекращения операции сравнения Команда условного перехода, реализующая переход по этой причине операнд_источник > операнд_приемник ja операнд_источник = операнд_приемник je операнд_источник <> операнд_приемник jne операнд_источник < операнд_приемник jb операнд_источник <= операнд_приемник jbe операнд_источник >= операнд_приемник jae
Дата добавления: 2015-04-24; Просмотров: 377; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |