Автор: Пользователь скрыл имя, 27 Февраля 2013 в 15:22, лабораторная работа
Мета роботи:
Ознайомитись з організацією процесору та основної пам'яті комп'ютера і їх взаємодією при виконанні команд програми. Отримати навики роботи з асемблерними відладчиками.
Багато арифметичних, логічних команд та команд порівняння змінюють стан прапорців. При програмуванні на Асемблері найбільш часто вживаними є прапорці OF, SF, ZF, CF для арифметичних операцій та операцій порівняння, а прапорець DF – для позначення напрямку в операціях над рядками.
Призначення прапорцевих бітів:
Прапорець |
Призначення | |
OF |
Переповнення |
Вказує на переповнення старшого біту при арифметичних командах. |
DF |
Напрям |
Визначає лівий чи правий напрям пересилки або порівняння рядкових даних |
ІF |
Переривання |
Вказує на можливість зовнішніх переривань. |
TF |
Покроковий режим |
Забезпечує можливість роботи процесора в покроковому режимі. |
SF |
Знак |
Містить результуючий знак після арифметичних операцій (0 – плюс, 1 – мінус) |
ZF |
Нуль |
Показує результат арифметичних операцій (0 – ненульовий результат, 1 – нульовий результат). |
AF |
Додатковий перенос |
Містить перенос з 3-го біту (використовується для спеціальних арифметичних операцій). |
PF |
Контроль парності |
Показує парність кількості бітів "1" в молодшому байті даних (1 – парна, 0 – непарна). |
CF |
Перенос |
Вміщує перенос із старшого біту після арифметичних операцій, а також біт, що "випав" при зсувах. |
Асемблерний відладчик
Для відображення та модифікації вмісту внутрішніх регістрів МП і клітинок оперативної пам'яті, а також для відлагодження програм використовують спеціальні програмні засоби – ассемблерні відладчики (Debug, AfdPro, тощо).
В даній лабораторній роботі використовується асемблерний віладчик TІC (файл tіc.com), що має досить зручний інтерфейс та развинуті відладжувальні засоби.
Основний робочий екран
1. Командне вікно – служить для введення команд управління роботою самого відладчика. Завантаження відладжуваної програми в робочу область пам'яті здійснюється командою L_<ім'я програми.
2. Програмне вікно – демонструє команди відладжуваної програми в звичному вигляді (мнемоніки Асемблера) та у вигляді машинних кодів. Завантажена для відлагодження програма представлена в цьому вікні у вигляді 4-х колонок:
ПРОЦЕСОРНЕ ВІКНО | ||
КОМАНДНЕ ВІКНО |
| |
|
ВІКНО | |
ПРОГРАМНЕ ВІКНО |
ПАМ'ЯТІ | |
|
| |
ВІКНО ПАМ'ЯТІ |
ASCІІ- | |
ВІКНО | ||
РЯДОК ПіДКАЗОК | ||
Мал. 1.4 Функціональні вікна ассемблерного відладчика |
– адреса (зміщення в сегменті кодів ОП) старшого байту команди;
– машинний код команди (1...6 байт);
– мнемонічне ім'я операції;
– операнд чи операнди (якщо є).
Табл. 1.2 | ||
Команда |
ADD AL, [SІ+02] | |
1-й операнд |
місцезнаходження: |
молодший байт регістру AX |
значення: |
97 | |
2-й операнд |
місцезнаходження: |
клітинка пам'яті в сегменті даних, що має зміщення SІ+02=3244+02= 3246 |
значення: |
DA | |
місцезнаходження: |
молодший байт регістру AX | |
Результат |
значення: |
97+DA=171 |
двійкове представлення: |
0001 0111 0001 | |
Стан прапорців |
ZF: 0 CF: 1 PF: 1 SF: 0 AF: 1 |
Переміщатися по тексту завантаженої програми можна за допомогою клавіш управління курсором.
3. Процесорне вікно – відображує вміст регістрів МП, в тому числі прапорців, а також вершину стеку. В цьому вікні можна безпосередньо змінювати вміст регістрів МП.
Таблиця 1.1 | ||
Основа системи обчислення | ||
10 |
16 |
2 |
0 |
0 |
0000 |
1 |
1 |
0001 |
2 |
2 |
0010 |
3 |
3 |
0011 |
4 |
4 |
0100 |
5 |
5 |
0101 |
6 |
6 |
0110 |
7 |
7 |
0111 |
8 |
8 |
1000 |
9 |
9 |
1001 |
10 |
A |
1010 |
11 |
B |
1011 |
12 |
C |
1100 |
13 |
D |
1101 |
14 |
E |
1110 |
15 |
F |
1111 |
4, 5. Вікна пам'яті – мають однакове призначення і надають зручну можливість одночасного доступу до двох різних ділянок пам'яті.
Вміст пам'яті представлений у вигляді послідовності рядків з 8 (праве вікно) або 16 (нижнє вікно) клітинок пам'яті. На початку кожного рядку вказаний регістр, що адресує даний сегмент та адреса (зміщення всередені цього сегменту) першої з клітинок в рядку). Для переходу в інший сегмент достатньо, розташувавши курсор на імені сегментного регістру, вказати за допомогою клавіатури інше дозволене ім'я. Аналогічно, в будь-якому рядку можна безпосередньо вказати також і зміщення в цьому сегменті потрібної клітинки.
6. ASCІІ – вікно. Представляє вміст пам'яті у вигляді символьних кодів.
7. Рядок підказок. Визначає дії, що закріплені за кожною з 10 функціональних клавіш.
Примітка: для забезпечення компактності та більш зручного сприйняття вся числова інформація представлена на экрані відладчика в шістнадцятковому форматі (відповідність між шістнадцятковими, звичайними десятковими та двійковими числами приведена в табл.1.1)
Порядок виконання роботи
1. Створити в своєму директорії піддиректорій LAB1 і скопіювати в нього файли tіc.com та lab1.exe .
2. Запустити на виконання асемблерний відладчик і завантажити в командному вікні програму lab1.exe. Освоїти переміщення по екрану відладчика, модифікацію вмісту регістрів МП та клітинок пам'яті, пошук потрібної клітинки пам'яті за її логічною адресою.
3. Прослідити порядок заповнення та вивільнення стеку. Прослідити за зміною вмісту лічильника команд ІP при виконанні команд програми, в тому числі при переходах, циклах і викликах підпрограм.
Пам'ять |
|||||||
40000 |
|||||||
Сегмент |
|||||||
стеку |
|||||||
30000 |
|||||||
2DA50 | |||||||
Сегмент |
|||||||
20000 |
коду |
||||||
1A880 | |||||||
Сегменти |
|||||||
даних |
12870 | ||||||
10000 |
|||||||
00000 |
|||||||
Мал. 1.5 Схема розміщення програми в ОП. (CS: 1A88, DS: 1287, ES: 1287, SS: 2DA5) |
4. Для вказаної викладачем команди пересилки даних знайти її машинне представлення в пам'яті. Визначити і знайти на екрані відповідні джерела та приймачі інформації. Перевірити, виконавши команду в покроковому режимі.
5. Для вказаної викладачем арифметичної команди обчислити результат (приклад - табл.1.2). Здійснити перевірку, виконавши команду за допомогою відладчика.
6. Завантажити в відладчик вказану викладачем програму. Використовуючи дані з відповідних сегментних регістрів та відому довжину сегменту, скласти схему розміщення програми в пам'яті (приклад на мал 1.5).
Зміст протоколу роботи
Информация о работе Центральний процесор та пам'ять комп'ютера