Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лаб1-2012.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
319.49 Кб
Скачать
  1. Загальна характеристика налагоджувача

Повноекранний налагоджувач AFD забезпечує налагоджування програм лише для процесорів і8086 (і286) в операційній системі DOS. Під час роботи AFD на екрані відображується вміст усіх регістрів процесора, 4 верхніх елементи стеку та до дев’яти строк дизасембльованого коду програми. Окрім того мається два незалежних вікна пам’яті, які дозволяють відображати вміст комірок операційної пам’яті в шістнадцятирічному форматі та в коді ASCII. Дизасембльований код, а також вміст пам’яті в шістнадцятирічному вигляді чи в коді ASCII можуть бути виведені на друк чи у файл.

Функції налагоджувача задаються командами в полі (вікні) командного рядка. Функції, які використовуються найчастіше, можна задати за допомогою функціональних клавіш. Команди мають довжину від одного до двох символів. Для перевірки їх синтаксису можна, не перериваючи роботи, викликати виведення на екран довідкової інформації. Крок виконання програми може бути виконаний натисканням однієї клавіші. Навіть процедури, які викликаються за допомогою CALL чи INT можуть бути виконані натисканням однієї клавіші.

Будь-яка помилка вводу команди викликає повідомлення про помилку і курсор встановлюється на символ, де під час розбору команди була знайдена помилка.

Код завантаженої програми видається на екрані в дизасембльованому вигляді, при цьому підтримується мнемоніка усіх команд лише мікропроцесорів I8086 та I80286.

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

  1. Запуск afd

Налогоджувач AFD може міститись в файлах afd.exe, afdp.exe або afdpro.exe. Запуск може виконуватись двома способами - інтерактивним або пакетним. В першому випадку AFD запускається засобами операційної системи як і будь яка інша програма без параметрів. При цьому на екран виводиться лише рекламна картинка. Для продовження роботи необхідно натиснути будь-яку клавішу, після чого з’являється основний екран AFD.

В другому випадку необхідно ввести наступний командний рядок DOS:

{пристр.:} AFD {спеціфікація файла }

У фігурних скобках вказані необов’язкові параметри командного рядка. Якщо всі параметри відсутні, то виконується інтерактивний запуск AFD.

Параметр 'пристр.:' задає диск та шлях до каталогу, де знаходиться AFD.EXE, якщо активний (поточний) каталог інший. Необов’язковий параметр {специфікація файла } містить шлях та ім’я файла програми, яка буде налагоджуватись (вивчатись). Рекомендується розміщати AFD та програму, яка буде налагоджуватись, в одному каталозі, що дає змогу не вказувати шлях. При запуску AFD курсор встановлюється в полі командного рядка, поміченого знаком '└─>'. Далі ми будемо посилатися на цю частину екрану як на командний рядок AFD. Поле над командним рядком вказує вміст регістрів процесора та 4 верхніх елементи стеку. Цю частину екрану далі будемо називати областю регістрів.

AFD програмним шляхом моделює два додаткові сегментні регістри - HS та FS, які не реалізовані в процесорах і8086 (і286) апаратно. Ці 2 регістра можуть служити як допоміжні. Вони використовуються також для ідентифікації сегменту після виконання команд пошуку чи порівняння. Регістр HS використовується в командах пошуку та порівняння. FS використовується тільки в команді порівняння, якщо для адресації не може бути використано вміст ніякого іншого сегментного регістру. Крім того, ці регістри можуть використовуватися при визначенні значення регістру сегмента для адресації вікна в пам’яті, яке не повинно змінюватись навіть, якщо налагоджуєма програма міняє вміст регістрів сегментів. Користувач може звертатися до них також, як і до інших регістрів.

Область нижча від командного рядка містить текст налагоджуємої програми в дизасембльованому вигляді, починаючи з комірки пам’яті по адресі CS:IP. Саме ліве поле кожного рядка цього тексту містить зміщення в сегменті кодів, наступні шістнадцятирічні значення показують код кожної команди процесора. Дизасембльований текст виглядає аналогічно тексту програми на мові Асемблера, за винятком того, що символічні імена адрес не використовуються . Один із рядків дизасембльованної області показаний на екрані в інверсному фоні. Інструкція в цьому рядку є поточною інструкцією, вона виконується наступною по команді 'G' чи 'Крок' (функціональна клавіша F1) незалежно від вмісту IP. При виконанні команди 'Крок' виконана інструкція зсувається на один рядок вгору. Рядок над рядком в інверсному фоні називається рядком попередньої команди. Цей верхній рядок дизасембльованої області (рядок попередньої команди) перекривається повідомленнями про стан системи та повідомлення про помилки, коли вони з’являються. Тому на цей рядок в залежності від інформації, яка в ній подана, посилаються також, як на рядок стану. Дизасембльована область може бути зсунута вгору та вниз за допомогою клавіш 'курсор вгору' та 'курсор вниз', клавіш PgUp та PgDn. У випадку, якщо поточна інструкція посилається на комірку пам’яті, вміст цієї комірки показується у зворотному фоні у кінці рядка, розташованого після командного рядка. В залежності від типу інструкції може бути показано значення слова чи байта.

Область справа від командного рядка - це вікно пам’яті номер 1, а область під дизасембльованою областю – це вікно пам’яті номер 2. Кожне вікно в першій колонці має логічну адресу, а вміст пам’яті виводиться в шістнадцятирічному вигляді. В кожному рядку вікна 1 в шістнадцятирічному форматі показано 8 байтів. Вікно 2 розділено на дві області, які використовують одну і ту ж адресу. Ліва частина відображає вміст пам’яті також як вікно 1, але по 16 байтів в рядку. Права частина показує вміст тієї ж області пам’яті, що й ліва, але в коді ASCII. Адреси у вікнах можуть відрізнятися одна від одної.

Усі символи, виведені з підвищеною яскравістю, можуть бути змінені користувачем введенням на їх місце нових значень. Курсор можна пересуватися у кожному вікні. Для переходу із одного вікна в інше необхідно використовувати клавіші F7-F10. Якщо в команді виклику AFD вказано ім’я файлу, то виконується завантаження цього файлу.