Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Лабораторна робота 8.




Тема: Ланцюжкові команди Асемблера

Ціль: Вивчити основні прийоми обробки рядків у програмах на асемблері.

Підготовка до роботи.

Ознайомитися з набором ланцюжкових команд [2, стор. 120-160], [3, стор. 393-403].

Питання для самоконтролю.

32. Особливості команд порівняння рядків.

33. Команди копіювання рядків.

34. Команди порівняння рядків.

35. Команди завантаження та вивантаження рядків.

36. Команди сканування рядків.

37. Як визначити розмір рядків?

38. Регістри, що використовуються при обробці рядків.

Короткі теоретичні відомості.

Більшість команд асемблера оперують байтом, словом або подвійним словом. Однак у багатьох випадках буває необхідно переслати або порівняти поля даних, що перевищують по розмірі слово або байт. Наприклад, може знадобитися порівнювати описи або імена, щоб відсортувати них у визначеній послідовності. Елементи такого формату відомі як строкові дані і можуть мати як символьний (ASCII – коди, UNICODE), так і числовий тип (відповідний символьному кодові).

Переваги асемблера виявляються і при обробці рядків і масивів даних. Під операціями обробки рядків ми будемо розуміти наступні операції:

• порівняння двох рядків;

• копіювання рядка-джерела в рядок-приймач;

• перебування підрядку в заданому рядку;

• об'єднання двох рядків (конкатенація);

• зчитування рядків із пристрою або файлу;

• запис рядка в пристрій або файл;

• визначення розміру рядка;

Операції над рядками широко використовуються в мовах високого рівня. Асемблерна реалізація таких операцій дозволяє істотно підвищити швидкодію програм, особливо якщо потрібно обробити велика кількість рядків і масивів.

Рядок символів або чисел, з якими програма працює як із групою, є звичайним типом даних. Програма пересилає рядок з одного місця в інше, порівнює неї з іншими рядками, шукає в ній задане значення. При роботі з рядками програміст зіштовхується з необхідністю визначити закінчення рядка, щоб точно знати, коли закінчувати обробку. Існує два принципово різних підходи до ідентифікації рядка і її елементів.

Можна вказати розмір рядка (кількість елементів, що входять у рядок), записавши число елементів у перший байт рядка. По загальноприйнятих угодах перший елемент рядка має зсув 0, тому можна сказати, що розмір рядка прописується в нульовому елементі, а символи рядка починаються з першого елемента. Такий принцип був реалізований у мові Pascal і в середовищі програмування Delphi. Такі рядки називаються короткими (short strings), оскільки їхній розмір не перевищує 255 байт.

Найбільше поширення одержав другий спосіб ідентифікації рядка, при якому наприкінці рядка вказується нульовий символ (0). Такі рядки називаються рядками з завершальним нулем (null-terminated strings). Вони використовуються в мові Сі в операційних системах Windows. От як виглядає такий рядок мовою асемблера:

Поделиться:





Читайте также:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...