Макромови - студопедія

Макромова - програмний засіб, що дозволяє користувачеві задавати в тексті програми умовні еквіваленти певних його фрагментів (дії). Макромова складається з:

- макроозначень, створюваних користувачем;

- з програм-препроцесорів, що переводять макроозначення в результуючі тексти.

За змістом макрокоманда є подальшим розвитком механізму заміни тексту. За допомогою макрокоманд в текст програми можна вставляти послідовності рядків (які логічно можуть бути даними або командами) і прив'язувати їх до контексту місця вставки.

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

Макрокоманда являє собою рядок, одним з компонентів якої є символічне ім'я макрокоманди. Ім'я макроси може супроводжуватися параметрами. Якщо даний рядок зустрічається в тілі вихідного тексту програми, то транслятор заміщає її однією або декількома іншими рядками. Якими саме рядками заміщається макрокоманда, визначається Макроозначення, яке представляє собою шаблон (опис) макрокоманди [8].

Таким чином, для використання макроси в програмі насамперед задається її макровизначеннями. Синтаксис макроозначення наступний:

список формальних аргументів

Є три варіанти розташування макроозначення:

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

2) макровизначеннями можуть розташовуватися в окремому файлі. Цей варіант підходить при роботі над кількома програмами однієї проблемної області. Щоб зробити доступними ці макроозначення в конкретній програмі, необхідно на початку вихідного тексту цієї програми записати директиву include имя_файла, наприклад;

; В це місце буде вставлений текст файлу show.inc

3) макровизначеннями можуть розташовуватися в макробібліотеке Якщо є універсальні макрокоманди, які використовуються практично у всіх ваших програмах, то їх доцільно записавши в так звану макробібліотеку. Зробити актуальними макрокоманди мул цієї бібліотеки можна за допомогою все тієї ж директиви INCLUDE. Недолік цього і попереднього способів в тому, що у відсутності файлу з Макроозначення практично неможливо буде відновити логіку роботи програми по її початкового тексту, насиченого макрокомандами.

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

Використання макрокоманд подібно використанню процедур і функцій. Однак, команди, що реалізують підпрограму, містяться в коді завантажувального модуля один раз, а команди, що реалізують макрокоманду, включаються в програму стільки раз, скільки було використано макрокоманда, т. Е. При використанні макрокоманд обсяг програми збільшується. При цьому, виконання процедури або функції вимагає передачі управління з поверненням (пара команд типу CALL і RET), а команди макророзширення включаються в загальну послідовність команд програми, тому програми, що використовують макроси виконуються швидше. Крім цього, якщо в багатофункціональної подпрограмме є розгалуження в залежності від значень параметрів, то в завантажувальний модуль включається код підпрограми в повному обсязі, навіть якщо в конкретній програмі реально використовується тільки одна з гілок алгоритму; в макрокоманді, в кожне макророзширення включаються тільки оператори, які визначаються фактичними значеннями параметрів команди, таким чином досягається економія і часу і обсягу в макрокомандах.

У підсумку, макросредства забезпечують кілька більшу швидкодію при кілька великих витратах пам'яті. Тому зазвичай макросредства застосовуються для оформлення порівняно невеликих фрагментів повторюваного коду.

1. Дати характеристику мови асемблера.

2. З чого состоітосновная виконавче середовище мікропроцесорів з архітектурою IA-32.

3. Призначення регістрів загального призначення.

4. Назва та призначення сегментних регістрів.

5. Назва та призначення регістрів ознак (прапорів).

6. Охарактеризувати режими роботи процесорів з архітектурою IA32.

7.Охарактерізоватьмоделі пам'яті, використовувані процесором з архітектурою IA32.

8. Назвати апаратні засоби мікропроцесорів сімейства IA-32 системного рівня.

9. Структура програми на мові Асемблер.

10. Що таке директиви? Призначення основних директив.

12. Які типи даних з точки зору апаратної підтримки підтримує процесор?

13. Перерахувати типи даних з точки зору логічної організації даних.

14. Призначення команд пересилання.

15 Призначення арифметичних команд.

16. Призначення зсувних команд.

17. Призначення команд для організації циклів.

18.Назначеніе команд для роботи з бітами.

19. Призначення команд порівняння.

20. Призначення команд передачі управління.

21. Яким чином оформляються процедури в Асемблері. Які використовуються директиви?

22. Які існують варіанти розміщення процедур в програмі?

22. Призначення системних команд.

23. Синтаксис макроозначення.

24 Що таке макромова?

25. Які існують варіанти розташування макроозначення?

Схожі статті