Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Інструкція CMPS




Інструкція SCAS

Інструкція SCAS використовується для перегляду пам’яті та пошуку збігів чи незбігів з конкретним значенням розміром у байт чи слово. Як і всі рядкові інструкції, інструкції SCAS має дві форми – SCASB та SCASW.

Інструкція SCASB порівнює зміст регістру AL з байтовим значенням по адресу ES:DI, встановлюючи при цьому флаги, які відображують результат порівняння (як при виконанні інструкції CMP). Як і при виконанні інструкції STOSB, при виконанні інструкції SCASB збільшується чи зменшується значення регістру DI.

Рядкові інструкції ніколи не встановлюють флаги таким чином, щоб вони відображали зміни значень регістрів SI, DI і/чи СХ. Інструкції STOS та MOVS взагалі не змінюють ніяких флагів, а інструкції SCAS та CMPS змінюють флаги тільки у відповідності з результатом виконаного їм порівняння.

Префікс REPE (який також має назву префікс REPZ) також вказує процесору 8086, що інструкцію SCAS (чи CMPS) треба повторювати доколи регістр СХ не буде дорівнювати нулю, чи допоки не станеться незбіг. Префікс REPE можна розглядати, як префікс, який означає “повторювати, допоки дорівнює”. Аналогічно, префікс REPNE (REPNZ) вказує процесору 8086, що інструкцію SCAS (CMPS) треба повторювати, допоки СХ не буде дорівнювати 0 чи допоки не станеться збіг. Префікс REPNE можна розглядати, як префікс “повторювати допоки не дорівнює”.

Як і всі рядкові інструкції, інструкція SCAS збільшує регістр-показчик DI, якщо флаг напрямку дорівнює 0 (очищений за допомогою інструкції STD).

Інструкція SCASW – це форма інструкції SCASB для роботи зі словом. Вона зрівнює зміст регістру АХ зі змістом пам’яті по адресі ES:DI та збільшує чи зменшує значення регістру DI у кінці кожного виконання на 2, а ні на 1.

Інструкція CMPS дозволяє виконувати зрівняння двох байт чи слів. При одному виконанні інструкції CMPS зрівнюються дві чарунки пам’яті, а потім збільшуються регістри SI та DI. Інструкцію CMPS можна розглядати, як аналог інструкції MOVS, який замість копіювання однієї чарунки пам’яті у іншу зрівнює дві чарунки пам’яті.

Інструкція CMPSB порівнює байт по адресі DS:SI з байтом по адресі ES:DI, встановлюючи відповідним чином флаги та збільшуючи чи зменшуючи регістри SI та DI (у відповідності від флагу напрямку). Регістр АХ при цьому не змінюється.

Як і всі рядкові інструкції, інструкція CMPS має дві форми (для роботи з байтами та для роботи зі словами), може збільшувати чи зменшувати регістри SI та DI та буде повторюватися при наявності префікса REP.




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


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


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



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




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