- •Вопрос 1
- •Вопрос 2
- •Алгоритм работы управляющего автомата
- •Inta - признак начала работы в режиме прерывания.
- •Вопрос 3
- •Способы адресации
- •Спецкоманды
- •Псевдокоманды
- •2.4. Способы адресации
- •2.5. Форматы команд 16-разрядного мп
- •2.6. Система команд 16-разрядного мп
- •2.6.1. Команды передачи данных
- •2.6.2. Команды обработки данных
- •2.6.3. Команды управления
- •2.6.4. Команды условного перехода
- •2.6.5. Команды обработки цепочек данных
- •Вопрос 4
- •Вопрос 5
- •Организация шин микроЭвм.
- •Увеличение нагрузочной способности шин мп
- •Шинные формирователи
- •Системный контроллер
- •Вопрос 6
- •Вопрос 7
- •Инициализация.
- •2 Разряда
- •Г Сброс раф работы первичного автомата
- •Вопрос 8
- •Структурная схема.
- •Режимы работы.
- •Управляющие слова, инициализация (уси).
- •Каскадная схема включения.
- •Вопрос 10
- •3.4. Обработка прерываний
- •3.5. Организация прямого доступа к памяти
- •3.6. Запуск и сброс микропроцессора
- •Вопрос 11
- •Вопрос 12
- •Вопрос 13
- •Вопрос 14
- •Вопрос 15
- •Сторожевые таймеры
- •Организация таймеров/счетчиков.
2.5. Форматы команд 16-разрядного мп
Команда может содержать от одного до шести байтов (рис.2.4)
КОП
КОП 11 reg r/m
КОП mod коп r/m
КОП mod reg r/m МБ disp СБ disp
КОП 11 коп r/m МБ data СБ data
КОП mod коп r/m МБ disp СБ disp МБ data СБ data
Формат первого байта команды показан на рис. 2.5.
7 2 1 0
коп d w
или 7 2 1 0
коп reg
или 7 4 3 2 0
коп w reg
Рис. 2.5. Формат первого байта команды
Поле d (directin) определяет направление передачи операнда. Если d=1, то направление передачи в регистр, если d=0, то из регистра.
Поле W (word) определяет тип операнда. Если W=1, то операнд - 16-разрядное слово, если W=0 - байт. Двухразрядное поле reg служит для размещения адреса сегментного регистра (табл. 2.2), а трехразрядное поле - для размещения адреса регистров общего назначения (табл. 2.3). В остальных разрядах первого байта команды размещается код операции (КОП).
Таблица 2.2 Таблица 2.3
Адреса сегментных регистров Адреса регистров общего назначения
Имя Адрес Имя регистра Адрес ( rrr )
регистра ( r r ) при W=1 при W=0
ES 00 АХ AL 000
CS 01 CX CL 001
SS 10 DX DL 010
DS 11 BX BL 011
SP AH 100
BR CH 101
DI DH 110
SI BH 111
Во втором байте команды указан способ адресации. В зависимости от способа адресации за вторым байтом команды могут следовать один или два байта непосредственных данных и необязательно (это зависит от конкретного кода команды) за ними один или два байта смещения (disp);
Формат второго байта команды:
7 6 5 3 2 0
mod reg r/m
Поле reg указывает адрес регистра (см. табл. 2.3). В командах непосредственной загрузки сегментных регистров в поле reg записывается трехразрядный код 0rr, где два разряда rr определяются из табл. 2.2.
Поле mod определяет используемый способ адресации. Следует помнить, что при выполнении команд один операнд всегда хранится в одном из регистров, а другой выбирается из памяти либо из регистра. Когда в поле mod содержится код 11, то операнд выбирается из регистра, адрес которого определяется из табл. 2.3 . Если mod 11, то это поле определяет, каким образом используется смещение disp (табл. 2.4).
Поле r/m определяет, как формируется смещение ЕА (табл. 2.4).
Таблица 2.4
mod = 00 disp r/m отсутствует |
mod = 01 disp 8 разрядов |
mod = 10 disp 16 разрядов |
000 (BX) + (SI) |
(BX) + (SI) + disp |
(BX) + (SI) + disp |
001 (BX) + (DI) |
(BX) + (DI) + disp |
(BX) + (DI) + disp |
010 (BP) + (SI) |
(BP) + (SI) + disp |
(BP) + (SI) + disp |
011 (BP) + (DI) |
(BP) + (DI) + disp |
(BP) + (DI) + disp |
100 (SI) |
(SI) + disp |
(SI) + disp |
101 (DI) |
(DI) + disp |
(DI) + disp |
110 прямая адресация |
(BP) + disp |
(BP) + disp |
111 (BX) |
(BX) + disp |
(BX) + disp |
Примечание: для случая r/m=110 и mod=00 используется прямая адресация, для которой ЕА определяется смещением disp.
Для одной и той же команды время вычисления исполнительного адреса зависит от способа формирования смещения ЕА, и, следовательно, время выполнения команды будет различным. В табл. П2.1 время выполнения команд выражается числом тактов, необходимых для выполнения команды без учета времени вычисления исполнительного адреса, плюс переменная ЕА, обозначающая число тактов, необходимых для вычисления исполнительного адреса. Количество тактов, требуемое для вычисления ЕА, указано в табл. 2.5. При замене сегментного регистра, который обычно указан по умолчанию, число тактов следует увеличить на два.
Таблица 2.5
Cпособ формирования ЕА (табл. 2.4) |
Число тактов |
Прямая адресация r/m = 110 r/m = (100,101,111) mod = 00 r/m = (100,101,110,111) mod = 01 r/m = (000,011) mod = 00 r/m = (001,010) mod = 00 r/m = (000,011) mod = 01 r/m = (000,011) mod = 10 r/m = (001,010) mod = 01 r/m = (001,010) mod = 10 |
6 5 9 7 8 11 15 12 16 |