Процесор містить 14 швидкодійних 16-розрядних комірок пам’яті, які називаються регістрами (табл. 4.1).
Регістри поділяють на регістри загального призначення, сегментні, індексні, вказівники та регістр стану процесора і регістр вказівник команд. До регістрів загального призначення (АХ, ВХ, СХ, DХ) можна звертатися як безпосередньо, так і побайтово (до молодшого та старшого розряду окремо), наприклад, регістр АХ складається з молодшого розряду AL та старшого AH. Індексні регістри (SI, DI) призначені для зберігання індексів при роботі з рядковими даними. Регістри-вказівники (BP, SP) використовуються для роботи зі стеком.
Сегментні регістри використовуються для зберігання адрес відповідних сегментів пам’яті. Сегментом називається область пам’яті, яка починається з адреси, кратної 16, та містить дані однієї структури. Розрізняють три головні сегменти програми: сегмент коду (CS) – містить інструкції програми; сегмент даних (DS) – містить дані, задані програмістом; сегмент стека (SS) – область пам’яті, доступ до якої організований за принципом LIFO (last in, first out – останній зайшов, перший вийшов). Також існує розширений сегмент (ES), який використовується, наприклад, при роботі з рядковими даними.
Регістр стану (регістр прапорців) визначає стан процесора після виконання кожної команди. Для мікропроцесорів Intel 8086 активними є 9 бітів з 16. Ці біти називають прапорцями стану (додаток Б). Регістр-
вказівник команд (IP) містить адресу команди (в сегменті коду). Під час виконання програми значення вказівника збільшується на розмір виконаної команди. Існують команди, які змінюють значення IP для реалізації переходів всередині програми.
Таблиця 4.1 – Регістри процесору Intel 8086
Ім’я
|
English
|
Призначення
|
Регістри загального призначення
|
AX
|
Accumulator
|
Акумулятор (AH, AL), надшвидкий регістр, пов’язаний безпосередньо з АЛП (арифметико-
логічним пристроєм) мікропроцесора.
|
BX
|
Base
|
Базовий регістр (BH, BL), використовується при
розширеній адресації.
|
CX
|
Counter
|
Регістр-лічильник (CH, CL), керує числом
повторів у циклах.
|
DX
|
Data
|
Регістр даних (DH, DL), використовується для введення/виведення даних та для обчислень з по-
двійною точністю, або великими числами при не- достатній розрядності акумулятора.
|
Індексні регістри
|
SI
|
Source Index
|
Індексування джерела (SI)/приймача (DI), використовуються при обробці рядкових даних та індексування масивів даних.
|
DI
|
Destination
Index
|
Регістри-вказівники
|
BP
|
Base Pointer
|
Вказівник бази
|
SP
|
Stack Pointer
|
Вказівник стека
|
Сегментні регістри
|
CS
|
Code Segment
|
Сегмент коду, не можна змінити напряму.
|
SS
|
Stack Segment
|
Сегмент стека.
|
DS
|
Data Segment
|
Сегмент даних
|
ES
|
Extension
Segment
|
Розширений сегмент даних.
|
Вказівник команди
|
IP
|
Instruction
Pointer
|
Зміщення команд, програмно недоступний.
|
Регістр прапорців
|
FLAGS
|
|
Інформація про поточний стан процесора.
|
Достарыңызбен бөлісу: |