Граматичні конструкції, які відповідають цим поняттям



 

РЕГІСТРИ

Процесори 8086/8088 мають 14 регістрів, використовуваних для yправления програмою, що виконується, для адресації пам'яті і для забезпечення арифметичних обчислень. Кожен регістр має довжину в одне слово (16 біт) і адресується по імені. Біти регістра прийняті нумерувати ліворуч праворуч:

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Процесори 80286 і 80386 мають ряд додаткових регістрів, деякі з них 16-бітові. Ці регістри тут не розглядаються. Сегментні регістри CS, DS, SS і ES.

Кожен сегментний регістр забезпечує адресацію 64ДО пам'яті, що називається поточним сегментом. Як показано раніше, cегмент вирівняний на границю параграфа і його адреса в сегментному pегістрі припускає наявність праворуч чотирьох нульових бітів.

1. Регістр CS.

Регістр сегмента коду містить початковий адреса сегмента коду. Ця адреса плюс величина зсуву в командному покажчику (IP) визначає адреса команди, яка повинна бути обрана для виконання. Для звичайних програм немає необхідності робити посилання на регістр CS.

2. Регістр DS.

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

3. Регістр SS.

Регістр сегмента стека містить початковий адрес в сегменті стека.

4. Регістр ES. Деякі операції над рядками використовують додатковий сегментний регістр для керування адреси цієї пам'яті. У даному контексті регістр ES зв'язаний з індексним регістром DI. Якщо необхідно використовувати регістр ES, асемблерна програма повинна його інніціалізувати.

Регістри загального призначення: AX, BX, CX і DX

При програмуванні на асемблере регістри загального призначення є "робочими конячками". Особливість цих регістрів полягає в тому, що можлива адресація їх як одного цілого чи слова як oднобайтової частини. Лівий байт є старшою частиною (high), a правий - молодшою частиною (low). Наприклад, двобайтовий регістр CX складається з двох однобайтових: CH і CL, і посилання на регістр можливі по кожному з цих трьох імен. Наступні три асемблерні команди засилають нулі в регістри CX, CH і CL, відповідно:

 

MOV CX,00

MOV CH,00

MOV CL,00

 

1. Регістр AX. Регістр AX є основним суматором і застосовується для всіх операцій уведення-висновку, деяких операцій над рядками і деяких арифметичних операцій. Наприклад, команди множення, розподілу і зрушення припускають використання регістра AX. Деякі команди генерують більш ефективний код, якщо вони мають посилання на регістр AX.

 

AX: ¦ AH ¦ AL ¦

 

2. Регістр BX. Регістр BX є базовим регістром. Це єдиний регістр загального призначення, що може використовуватися в якості "індексу" для розширеної адресаціі. Інше загальне застосування його - обчислення.

 

BX: ¦ BH ¦ BL ¦

 

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

 

CX: ¦ CH ¦ CL ¦

 

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

 

DX: ¦ DH ¦ DL ¦

 

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

Реєстрові покажчики: SP і BP

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

1. Регістр SP. Покажчик стека забезпечує використання стека в пам'яті, дозволяє тимчасово зберігати адреса і інколи дані. Цей регістр зв'язаний з регістром SS для адреси цього стека.

2. Регістр BP. Покажчик бази полегшує доступ до параметрів: даним і адресам переданим через стек.

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

Обоє індексні регістри можливі для розширеної адресаціїі для використа- ння в операціях додавання і вирахування.

1. Регістр SI. Цей регістр є індексом джерела і застосовується для деяких операцій над рядками. У даному контексті регістр SI зв'язаний з регістром DS.

2. Регістр DI. Цей регістр є індексом призначення і застосовується також для строкових операцій. У даному контексті регістр DI зв'язаний з регістром ES.


Дата добавления: 2019-07-15; просмотров: 192; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!