Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метод вказів лаборат роб Опер сист.doc
Скачиваний:
11
Добавлен:
08.02.2016
Размер:
1.41 Mб
Скачать
    1. Прикладна архітектура процессора 8086(8088)

Мета роботи: ознайомитися з архітектурою процесора 8086(8088) з погляду програміста мовою АСЕМБЛЕР.

1.1. Теоретичні відомості.

1. Організація адресного простору.

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

Комірка ОЗП має адресу, використовуючи яку можна або прочитати її вміст або записати в неї нове значення.

Комірки мають послідовні адреси, що починаються з нульового. Максимально можлива адреса 2 -1 (1048560-1).

Мінімально одиницею для процесора 8086, що адресується, є БАЙТ (8 біт). Адреси байтів: 0, 1, 2, 3 і т.д. Може адресуватися СЛОВО (два байти).

Для запису слова (1025 чи 0401Н) необхідно два байти (старший 04 і молодший 01). Система зберігає в пам'яті слова в зворотному порядку (молодша частина по младщему адресі, старша - по старшому). Слово адресується за адресою свого молодшого байта. Адреси слів: 0, 2, 4, 6 і т.д.

СЕГМЕНТ - це область пам'яті, що починається на границі параграфа за адресою кратному 16 ), має розмір до 64К и може розташовуватися в будь-якім місці ОЗП. Реальний розмір - стільки, скільки потрібно для виконання програми.

Маються три головних сегменти.

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

2. Сегмент даних, у якому зберігаються дані, константи і робочі області, необхідні програмі.

3. Сегмент стека. Стек - область оперативної пам'яті, організована за принципом: записаний останнім читається першим. Використовується для збереження адрес повернення з процедур, переривань.

4. Може бути ще додатковий сегмент.

Адреси початку сегментів зберігаються в спеціальних сегментних регістрах. Сегментні регістри шістнадцатирозрядні. Тому, що початок сегмента орієнтований на границю параграфа, молодший розряд адреси (у шестнадцатиричному коді) завжди дорівнює нулю. Він не зберігається. У такий спосіб у сегментному регістрі зберігаються старші 16 розрядів (у шістьнадцятковому коді) адреси початку сегмента (БАЗА).

Усередині програми всі адреси відносні до початку сегмента (ЗСУВ відносно початку сегмента).

Зсув складає 2 байти (від 0000 до FFFF чи від 0 до 65535 (64К)).

Адреса в програмі формується як сума умісту відповідного сегментного регістра і зсуву.

Нехай у сегментному регістрі зберігається адреса 045F

Результуюча адреса виходить:

Адреса в сегментному регістрі 045F0

Зсув + 00032

----------

04622

(До значення сегметного регістра додається нуль, який мається на увазі).

У такий спосіб при 16 бітах у сегметних регістрах і 16 бітах зсуву можна адресувати 1 Мбайт пам'яті.

Регістри процесора 8088(8086)

ОП - операційний пристрій, ШІ - шинний інтерфейс

Регістри процесора 8088(8086):

Регістри загального призначення:

AX:

AH

AL

BX:

BH

BL

CX:

CH

CL

DX:

DH

DL

Регістрові покажчики: SP та BP, індексні регістри: SІ та DІ, Сегментні регістри: CS, DS, SS та ES, ІP - Лічильник команд, Регістр прапорців.

Процесор складається з двох основних частин: операційного пристрою (ОП) і шинного інтерфейсу (ШІ). ОП виконує команди, ШІ підготовляє команди і дані для виконання. ОП містить арифметическо-логическое пристрій (АЛУ), пристрій керування (УУ) і десять регістрів. Ці пристрої забезпечують виконання команд, арифметичні обчислення і логічні операції. ШІ складається з блоку керування шиною, черги команд і сегментних регістрів. ШІ виконує три основні функції:

1) керує передачею даних на ОП, у пам'ять і на зовнішні пристрої введення/висновку;

2) чотири сегментних регістри керують адресацією пам'яті обсягом до 1 Мбайта;

3) здійснює вибірку команд з ОЗП, черга команд зберігає чотири команди, що випливають за виконуваною.

ОП і ШІ працюють паралельно, причому ШІ опержает ОП на один крок. ОП повідомляє ШІ про необхідність доступу до даних у чи пам'яті на зовнішньому пристрої введення-висновку. Крім того, ОП запитує команду з черги команд. Поки ОП зайнято виконанням першої в черзі команди, ШІ вибирає наступну команду з пам'яті.

Процесори 8086/8088 мають 14 регістрів, использующихсядля керування програмою, для адресації пам'яті, для забезпечення арифметичних обчислень.

Регістри мають довжину одне слово (16 біт).

СЕГМЕНТНІ РЕГИСТЫ CS,DS,SS,ES.

Сохрняют адреса початку відповідного сегмента (без молодшого нуля):

CS - кодового сегмента;

DS - сегмента даних;

SS - сегмента стека;

ES - додаткового сегмента.

РЕГІСТРИ ЗАГАЛЬНОГО НАЗЕАЧЕНИЯ (РОН) AX,BX,CX,DX.

Можуть адресуватися як 16-бітові, так і як два однобайтовых.

АХ - 16-бітовий регістр, Ан-старша частина(лівий байт), АL-младшая частина(правий байт).

Призначення РОН.

AX - використовується як сумматор, у всіх операція введення-висновку, деяких операціях над рядками і деякими арифметичними операціями.

BX - базовий регістр. Єдиний РОН, що може використовуватися як індекс для розширеної адресації. Використовується також для обчислень.

CX - регістр-лічильник. Використовується для керування кількістю циклів і зрушень. Також застосовується для обчислень.

DX - регістр даних. Використовується в деяких операціях уведення-висновку, в операціях множення і розподілу великих чисел.

РЕЄСТРОВІ ПОКАЖЧИКИ SP,BP.

Забезпечують доступ до даних у стеці.

SP - указує на зсув відносно SS вершини стека.

BP - указує на зсув відносно SS данныч усередині стека.

ІНДЕКСНІ РЕГІСТРИ SІ,DІ.

Використовуються для розширеної адресації й в операціях додавання/вирахування.

SІ - є індексом джерела і використовується разом з DS для деяких операцій над рядками.

DІ - є індексом призначення і використовується разом з ES для деяких операцій над рядками.

ПОКАЖЧИК КОМАНД (ЛІЧИЛЬНИК КОМАНД) ІP.

Містить зсув (відносно СS) на команду, яка повинна бути виконана.

ФЛАГОВИЙ РЕГІСТР.

Зберігає у вигляді бітових полів результати виконання операцій (ознаки нульового, негативного результату, переповнення розрядної сітки т.ін.)

ПІДГОТОВКА ДО РОБОТИ.

Вивчити короткі теоретичні відомості і рекомендовану літературу.

ВИМОГИ ДО СКЛАДАННЯ ЗВІТУ.

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

КОНТРОЛЬНІ ПИТАННЯ.

1. Що таке сегмент? Які сегменти Ви знаєте?

2. Як формується 20-розрядна адреса в оперативній пам'яті? Що таке база і зсув?

3. Які функції в операційного пристрою і шинного інтерфейсу?

4. Яка функція у сегментних регістрів?

5. Яке призначення покажчика команд і флагового регістра?