Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Методички » Асемблер для IBM PC

Реферат Асемблер для IBM PC





(CMPS), які можна розділити на групи:

команди пересилання рядків: MOVS - пересилання, LOADS - завантаження, STOS - запис; команди перевірки рядків: SCAS - сканування, CMPS - порівняння.

Перелік команд обробки рядків представлений в таблиці 1.

Зауваження. Алгоритм роботи команди CMPS полягає в послідовному виконанні віднімання над черговими елементами обох рядків. За результатами віднімання змінюється вміст регістра прапора, але при цьому не змінюється інформація в комірках пам'яті, адресуються регістрами SI і DI. Якщо рядок-джерело src менше, ніж рядок-приймач dst, то CF = 1. Якщо рядки рівні, то ZF = 1. Якщо рядок-джерело src більше, ніж рядок-приймач dst, то CF = 0 і ZF = 0. У цих командах можуть бути використані префікси повторення REPE - повторити поки dst = src або REPNE - повторити поки dst <> src.


Таблиця 1. Строкові команди

МнемокодДействіеОперанд 1Операнд 2ПрімечаніеCMPSСравненіе пари елементів: [DS: SI] = [ES: DI]?; SI: = SI + d; DI: = DI + d, Регістри DS і SIРегістри ES і DIЗапісивается без операндів . За результатами порівняння змінюється регістр флагов.SCASСканірованіе рядки (порівняння значення акумулятора AL/AX з байтом/словом в пам'яті) AL = [ES: DI]?; DI: - DI В± 1Регістри ES: DIALІспользуется для пошуку в рядку елемента, рівного заданому ( в AL або АХ) або відмінного від заданногоMOVSПересилка рядки: [DS: SI] => [ES: DI]; SI: = SI + d; DI: = DI + dІсточнік - регістри DS і SIПріемнік - ES і DIНе змінює прапори і тому вихід з циклу можливий тільки за СХ = 0.STOSПеренос елементів з акумулятора в рядок-приймач dst: AL В® [ES: DI] регістра ALрегістров ES: DIІспользуется для запису у всі комірки якійсь області пам'яті однієї і тієї ж величини, зазначеної в регістрі AL або АХLODSПеренос елементів з рядка-джерела src в акумулятор: [DS: SI] В® ALрегістрамі DS: SIрегістр AL (AX) Використовується разом з командою STOS для перепису рядків, коли між зчитуванням і записом елементів рядків над ними повинна бути виконана якась додаткова операція

У таблиці 2 наведені умовні переходи, які можна використовувати з командою CMPS.


Таблиця 2. Умовні переходи для команд порівняння

УсловіеБез знакаСо знакомsrc dstJNE (JNZ) JNE (JNZ) src = dstJE (JZ) JE (JZ) src> = dstJAEJGEsrc> dstJAJG

Команди префікса повторення.

Строкові команди можуть обробляти тільки один байт або слово. При обробці довгих рядків використовуються спеціальні префікси повторення. Префікс змушує команду виконуватися кілька разів. У строкових командах можна використовувати такі префікси повторення:

Гј rep (repeat) - повторювати, поки CX> 0; використовується з командами, які реалізують операції-примітиви пересилання (movs) і збереження елементів ланцюжків (stos);

Гј repe або repz (repeat while Equal or Zero) - повторювати, поки прапор нуля встановлений і CX> 0; використовуються з командами порівняння (cmps) і сканування (scas) для пошуку відрізняються елементів ланцюжків;

Гј repne або repnz (repeat while Not Equal or Zero) - повторювати, поки прапор нуля скинутий і CX> 0; використовуються з командами порівняння і сканування для пошуку співпадаючих елементів ланцюжків.

Префікси повторення вказуються перед потрібної цепочечной командою в поле мітки. Для їх використання необхідно помістити в регістр CX значення, рівне кількості повторів строковой команди. При цьому цепочечная команда, перед якою стоїть префікс, автоматично зменшує вміст cx на одиницю. p align="justify"> Приклади програм, що реалізують дії з рядками.

Фрагмент програми копіювання 10 байт з поля відправника source в полі одержувач dst.


data

src DB ABCDEFGHIJ ; рядок-джерело DB 10 dup (?) ; рядок - приймач

code

ASSUME DS: @ data, ES: @ data

Main:

MOV ...


Назад | сторінка 2 з 12 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Розробка в середовищі Turbo Pascal програми обчислення суми елементів рядкі ...
  • Реферат на тему: Створення базового класу &Рядок&, рядки ідентифікатора і десяткової рядка. ...
  • Реферат на тему: Команди налаштування, пошуку та усунення неполадок комутатора D-Link DES-30 ...
  • Реферат на тему: Сортування рядків матриці в програмі Pascal
  • Реферат на тему: Розвиток потенціалу команди за допомогою коучингу: практика роботи в російс ...