- •Раздел 4. Микропроцессоры семейства intel
- •Тема 4.1. Модели мп семейства intel и их сравнительная характеристика
- •Тема 4.2. Организация однокристальных 16-разрядных микропроцессоров
- •Стандартная архитектура 16-разрядного микропроцессора intel 8086.
- •Программная модель микропроцессора intel 8086.
- •Организация памяти.
- •Стандартная архитектура 16-разрядного микропроцессора intel 8086.
- •Программная модель микропроцессора intel 8086.
- •Сегментные регистры (cs, ds, ss, es),
- •Регистр адреса командIp,
- •Регистр флагов f.
- •Регистр флагов f
- •3. Организация памяти.
- •Тема 4.3. Система команд мп, форматы команд, классификация команд, способы адресации
- •Формат команды микропроцессора
- •Режимы адресации операндов
- •Тема 4.4. Система прерываний микроЭвм
- •Типы прерываний и особых ситуаций. Приоритеты прерываний и особых ситуаций
- •Механизм обработки прерываний
- •Типы прерываний и особых ситуаций. Приоритеты прерываний и особых ситуаций
- •Аппаратные прерывания
- •Программные прерывания
- •Исключительные ситуации
- •Механизм обработки прерываний
- •Тема 4.5. Сопроцессоры
- •Общие сведения и технические характеристики. Форматы команд и обрабатываемых данных. Система команд арифметического сопроцессора
- •Структура арифметического сопроцессора
- •Общие сведения и технические характеристики. Форматы команд и обрабатываемых данных. Система команд арифметического сопроцессора
- •Структура арифметического сопроцессора
- •Тема 4.6. Архитектура 32-разрядных мп
- •Регистровая структура мп 80486
- •Типы данных 32-разрядных мп
- •Система команд, форматы команд и способы адресации мп 80486
- •Тема 4.7. Реальный режим работы мп
- •Тема 4.8. Защищенный режим работы мп
- •Дескрипторы сегментов и их таблицы. Типы сегментов и дескрипторов
- •Страничная и сегментная организация памяти. Преобразование адресов в защищенном режиме
- •Средства поддержки мультизадачности и защиты. Механизмы защиты
- •Тема 4.9. Виртуальный режим работы мп
- •Виртуальная память. Средства поддержки виртуальной памяти
- •Пространство виртуальных адресов. Механизм преобразования адресов
- •Виртуальная память. Средства поддержки виртуальной памяти
- •Пространство виртуальных адресов. Механизм преобразования адресов
- •Сегментно - страничное распределение
-
Формат команды микропроцессора
Команды микропроцессора INTEL 8086 занимают в памяти от 1 до 6 байт. Исполнительный адрес памяти представляет собой 16-разрядное беззнаковое целое, являющееся смещением относительно базы некоторого сегмента. Полный (физический) адрес формируется с использованием содержимого одного из сегментных регистров.
Режимы адресации подразделяются на
-
прямые,
-
косвенные.
При прямой адресации исполнительный адрес либо содержится в команде, либо вычисляется с использованием значения, находящегося в команде, и содержимого, указанного в команде регистра (или двух регистров). При косвенной адресации исполнительный адрес в команде определяет регистр или ячейку памяти, содержащую окончательный исполнительный адрес.
Микропроцессор INTEL 8086 имеет организацию типа «регистр-память». С точки зрения адресации это означает, что команды микропроцессора адресуют максимум два операнда и что не допускается одновременная адресация двух ячеек памяти. Первым операндом в двухоперандной команде обычно является содержимое регистра или ячейки памяти, а вторым – содержимое регистра или непосредственный операнд в команде.
Формат команды:
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
младший байт смещения/ данные |
старший байт смещения/ данные |
младший байт данных |
старший байт данных |
КОП |
D |
W |
MOD |
REG |
R/M |
||||||||||||||
1-ый байт 2-ой байт
(постбайт)
Рисунок 1 – Формат команды микропроцессора INTEL 8086
КОП – определяет тип выполняемой операции.
D – направление передачи. При D=1 осуществляется передача операнда или результата операции в регистр, который определяется полем REG второго байта команды. При D=0 осуществляется передача из указанного регистра.
W – определяет разрядность операндов: W=1 – команда обрабатывает 16-разрядные числа, W=0 – команда обрабатывает 8-разрядные числа.
Второй байт команды называется постбайтом. Постбайт определяет участвующие в операции регистры или регистр и ячейку памяти.
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
MOD |
REG |
R/M |
|||||
REG - регистр
R/M – регистр/ память
Поле REG определяет операнд, который обязательно находится в регистре и условно считается вторым операндом.
Поле R/M определяет операнд, который может находиться в регистре или памяти и условно считается первым операндом.
Поле REG используется для указания регистра только в двухоперандных командах. Если в команде один операнд, то он определяется полем R/M.
Способ кодирования внутренних регистров микропроцессора в полях REG и R/M представлен в таблице 1.
Таблица 1 - Способ кодирования внутренних регистров микропроцессора
-
Поле R/M или REG
W=0
W=1
Поле R/M или REG
W=0
W=1
000
AL
AX
100
AH
SP
001
CL
CX
101
CH
BP
010
DL
DX
110
DH
SI
011
BL
BX
111
BH
DI
Поле MOD определяет используемый режим адресации: регистровый режим/ режим памяти. Разряды поля MOD определяют вид информации в поле R/M для нахождения адреса первого операнда.
11 – операнд содержится в регистре
00, 01, 10 – операнд находится в памяти
MOD=
Когда MOD = 11, то поле R/M определяет 8- или 16-разрядный регистр в соответствии с таблицей кодирования 1.
Если разрядами MOD определено, что второй операнд расположен в памяти, то разряды R/M определяют способ формирования исполнительного адреса операнда. В командах с обращением к памяти полученный исполнительный адрес – это смещение, добавляемое к сегменту для нахождения физического адреса операнда в оперативной памяти. Для каждой комбинации значений поля MOD формирование исполнительного адреса определяется полем R/M по таблице 2.
Таблица 2 - Формирование исполнительного адреса
R/M |
MOD |
|||||
00 |
01 |
10 |
||||
смещение |
сегмент |
смещение |
сегмент |
смещение |
сегмент |
|
000 |
BX+SI |
данных |
BX+SI+d8 |
данных |
BX+SI+d16 |
данных |
001 |
BX+DI |
данных |
BX+DI+d8 |
данных |
BX+DI+d16 |
данных |
010 |
BP+SI |
стека |
BP+SI+d8 |
стека |
BP+SI+d16 |
стека |
011 |
BP+DI |
стека |
BP+DI+d8 |
стека |
BP+DI+d16 |
стека |
100 |
SI |
данных |
SI+d8 |
данных |
SI+d16 |
данных |
101 |
DI |
данных |
DI+d8 |
данных |
DI+d16 |
данных |
110 |
непосредственная адресация |
данных |
BP+d8 |
стека |
BP+d16 |
стека |
111 |
BX |
данных |
BX+d8 |
данных |
BX+d16 |
данных |
d8, d16 – диспозиция (disp) –смещение, заданное в 3-ем и 4-ом байтах формата команды. Разряды MOD определяют количество байтов смещения, применяемых при расчете исполнительного адреса:
MOD=00 disp=0,
MOD=01 команда содержит 8-разрядное смещение,
MOD=10 команда содержит 16-разрядное смещение.
Смещение disp, содержащееся в команде, определяет знаковое целое число, которое участвует в вычислении исполнительного адреса. При сегментной организации оперативной памяти весь исполнительный адрес является смещением относительно базового адреса сегмента и определяется как беззнаковое целое число при вычислении физического адреса.