Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lekz._4.doc
Скачиваний:
2
Добавлен:
11.08.2019
Размер:
177.66 Кб
Скачать

Ключові моменти

  • Асемблер перетворює початкову програму в об'єктний файл і при необхідності генерує таблиці перехресних посилань і лістинг.

  • Таблиця сегментів і груп, наступна за лістингом, згенерована асемблером, показує сегменти і групи, визначені у програмі. Таблиця символів показує всі символи (імена елементів даних і мітки інструкцій).

  • Компонувальник перетворює об'єктний файл (.OBJ) у виконуваний (.ЕХЕ).

  • Таблиця перехресних посилань корисна для визначення всіх посилань, що виникають при зверненнях до елементів даних.

  • Лічильник положення використовується асемблером для обліку кожного визначеного в сегменті даних елемента даних.

Питання для самоперевірки

1. Вкажіть, який командний рядок необхідний, щоб відтранслюровати початкову програму MONITOR.ASM, створивши об'єктний файл, файл лістингу і файл перехресних посилань.

2. Вкажіть командний рядок для компонування MONITOR.OBJ із запитання 1, припустивши, що для цього потрібна окрема програма компонування.

3. Вкажіть, які команди потрібні для того, щоб запустити програму MONІTOR.EXE із запитання 2 (а) безпосередньо з DOS або (б) під управлінням DEBUG.

4. Поясніть призначення наступних файлів: (a) *.ASM, (б) *.LST, (в) *.МАР, (г) *.CRF, (д) *.OBJ, (e) *.ЕХЕ.

5. Припускаючи використання звичайних сегментних директив і DATASEGM як імені сегмента даних, вкажіть дві інструкції MOV, що ініціалізують регістр DS.

6.Напишіть асемблерну програму, котра використовує стандартні визначення сегментів і виконує наступні дії: (а) заносить безпосередньо значення 40 в регістр AL, (б) зсуває вміст AL вліво на 1 біт (SHL AL,1), (в) заносить безпосередньо значення 1ВН в регістр BL, (г) помножує AL на BL (MUL BL). Пам'ятайте про інструкції, необхідні для завершення програми. Програма не вимагає визначення сегменту даних і ініціалізації регістра DS. Скопіюйте заготовку програми і використовуйте редактор для внесення в неї необхідних змін. Відтранслюйте, скомпонуйте програму і використовуйте DEBUG для відстеження виконання програми, а також для перегляду інструкцій і даних.

7. Додайте до програми із запитання 6 сегмент даних і виконайте такі дії.

• Визначте 1-байтові (DB) елементи: перший - з ім'ям ITEMA і значенням 40Н, другий - ITEMB із значенням 1АН.

• Визначте 2-байтовий (DW) елемент з ім'ям ITEMC і невизначеним значенням.

• Помістіть значення ITEMA в AL і посуньте вліво на 1 біт.

• Помножте AL на ІТЕМВ (MUL ІТЕМВ).

• Занесіть добуток з АХ в ITEMC.

• Відтрансліюйте, скомпонуйте і відстежіть в DEBUG виконання програми.

8. Для кожного з наступних елементів даних вкажіть значення лічильника положення асемблера:

0000 WORD1 DW 0

. . . WORD2 DW 0

. . . BYTE1 DB 0

EVEN

. . . WORD3 DW 0

. . . BYTE2 DB 0

12

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]