Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lec 1.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
181 Кб
Скачать
☆

Регістри загального призначення Регістри загального призначення використовуються для будь-яких операцій без обмежень, але мають і свої спеціальні призначення

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

Регістр ЕAX (акумулятор):

О сновний суматор, використовується для усіх операцій вводу/виводу, деяких операцій над рядками (символьними даними), також використовується в десятковій арифметиці.

Р егістр EBX (база):

Виконує роль базового регістру. Тобто це єдиний регістр загального призначення, який може використовуватись в якості “індексу” для розширеної адресації (індексна адресація). Крім того BX використовується при обчисленнях.

Р егістр ECX (лічильник):

Необхідний для керування числом повторень циклів, а також операцій зсуву вліво чи вправо. Крім того CX використовується при обчисленнях.

Р егістр EDX (регістр даних):

Регістр даних застосовується для деяких операцій вводу/виводу і тих операцій множення і ділення над великими числами, які використовують регістрову пару ЕDX : ЕAX (AX : DX).

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

Регістри покажчики ЕSP і ЕBP

Регістри покажчики забезпечують доступ до даних в сегменті стеку. Інколи застосовуються для операцій додавання і віднімання.

SP – покажчик стеку, забезпечує використання стеку в пам’яті, дозволяє тимчасово зберігати адреси і в окремих випадках дані. Цей регістр адресує стек аналогічно регістру SS (зв’язаний з ним).

BP – покажчик бази, забезпечує зсилки на параметри (дані і адреси, що передані через стек).

Стек – це область пам’яті, яка відведена для зберігання проміжних результатів, тимчасових даних і адрес. Доступ до даних записаних в стек відбувається за принципом останній зайшов – перший вийшов, тобто доступним є останній записаний елемент в стек елемент.

Індексні регістри ЕSI і ЕDI

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

ЕSI – регістр індексу джерела. Використовується в деяких операціях над рядками і символами, аналогічний регістру DS (зв’язаний з ним)

ЕDI – регістр індексу отримувача, або індекс призначення. Використовується в тих же операціях, що і регістр ЕSI ( зв’язаний з ES).

Регістр командного показчика

ЕIP – містить зміщення команди, яка повинна бути виконана. Зміщення задається відносно базової адреси сегменту коду (CS). В основному використовується при відлагодженні для відслідковування команд, що будуть виконуватись.

Сегментні регістри CS, DS, SS і ES

Кожен сегментний регістр забезпечує адресацію пам’яті об’ємом 64 Kb. Кожен сегмент вирівнюється на межу параграфа, тобто по будь-якій адресі кратній 16, і його адреса в сегментному регістрі передбачає наявність справа 4-ох нульових бітів.

Призначення регістрів :

CS – регістр сегменту коду. Містить в собі початкову адресу сегменту коду. Ця

адреса плюс значення зміщення в покажчику команд (Inst.Point) визначає адресу команди, яка повинна вибиратися для виконання. При написанні звичайних програм нема необхідності робити зсилки на регістр CS.

DS – регістр сегменту даних. Містить початкову адресу сегменту даних. Ця адреса

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

SS – регістр стека. Містить початковий адрес сегменту стеку. Стек містить адреси

повернення для підпрограм запущеної програми та коди повернення в DOS запущеної програми.

ES – додатковий сегментний регістр. Використовується для управління адресацією пам’яті. Цей регістр використовують для деяких операцій над стрічками (символьними даними). При необхідності використання ES (FS, GS) його необхідно ініціалізувати в програмі.

Послідовність регістрів і сегментів не зберігається.

В середині програми всі адреси пам’яті відносні до початку сегменту. Такі адреси називають зміщенням від початку сегменту.

Для звернення до будь-якої адреси в програмі комп’ютер додає адресу в регістрі сегменту до зміщення. Наприклад, початкова адреса сегменту даних

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