90 VISA VIRTUAL (RUS BANK)
90 VISA VIRTUAL (RUS BANK)


Xbox Live Gold - Карта на 12 месяцев
Xbox Live Gold - Карта на 12 месяцев


85 VISA VIRTUAL (RUS BANK)
85 VISA VIRTUAL (RUS BANK)


В начало

Микропроцессор 8086 (Лекция)

 

ПЛАН ЛЕКЦИИ

– Условная схема микропроцессора 8086

– Очередь команд

– Режимы работы.

– Режим максимальной конфигурации

– Программная модель 8086

– Форматы команд. Режимы адресации команд и данных. Система команд. Кодирование команд

– Организация прерываний в микропроцессор 80х86

Условная схема микропроцессора 8086

 

            Выводы микропроцессора нарисованы для режима минимальной конфигурации. В режимах максимальной конфигурации микропроцессор не сам формирует полный набор сигналов, а вырабатывает код типа текущего машинного цикла. Микропроцессор состоит из двух параллельно (одновременно) работающих блоков: операционное устройство и устройство сопряжения с шиной.

            Операционный блок: преобразует информацию, производит арифметические и логические операции.

            Устройство формирования шины: физические адреса, сигналы управления шиной.

Операционный блок.

            В состав входит АЛУ комбинационного типа, АЛУ работает в двоичной, двоично-десятичной и ASCII системе счисления. Операнды могут быть одно и двух байтные. При выполнении операций фиксируется признак результата. Результат может быть зафиксирован в любом регистре.

Регистр флагов

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

 

 

 

 

OF

DF

IF

TF

S

Z

––

AF

––

PF

––

CF

 

TF – флаг трассировки, если 1 то трассировка разрешена (разрешено выполнение по командам).

IF – флаг прерываний, если 1 то прерывания разрешены.

DF – флаг направления сканирования, если 0 то сканирование идет в направлении младших адресов, если 1 то старших.

OF – флаг переполнения. Когда идет работа со знаковыми числами и возникает переполнение, то происходит перенос из значащей части в знаковую.

РОН.

            В микропроцессоре Intel 8086 существует восемь байтных и восемь двубайтных регистров общего назначения.

AX – аккумулятор, используется при умножении, делении и работе с портами.

DH,DL,AH,AL – при умножении в DX.

            IN AL,[DX] – специализируется как указатель при работе с портами.

CX – специализируется как счетчик.

BX – используется как базовый при определении логического адреса.

SP – содержит смещение в сегменте стека.

BP- указатель базы, содержит базовую часть логического адреса при адресации к стеку.

SI – содержит адрес ячейки источника при выполнении строковых команд.

DI – индексный регистр при обращении к строке приемник.

Блок согласования шины.

            Содержит четыре сегментных регистра.

CS – сегментный регистр кода, содержащий базовый адрес сегмента при адресации к команде. CS×16+IP=физический адрес.

DS – сегментный регистр данных.

ES – хранит базовый адрес сегмента при адресации к данным.

SS – сегментный регистр стека. Хранит базовый адрес сегмента стека.

            После RESET: CS=FFFFh, IP=0000h, стартовый адрес=FFF0h.

Соглашения в организации памяти.

            Память – байтная.

            Слова желательно располагать по четному адресу и младший байт должен иметь более младший адрес. При таком расположении считывание слова происходит за один цикл шины.

Сегменты.

            Длина одного сегмента до 64кБ. Сегменты могут располагаться произвольно и пересекаться.

            Достоинства сегментации:

1. Позволяет увеличить адресное пространство до 220, имея 16-битные внутренние регистры структуры.

2. Программы можно перемешать в адресном пространстве памяти путем перезагрузки базового адреса в сегменте.

3. Программист пишет программы в относительных адресах.

            Недостатки сегментации:

1. Нельзя манипулировать с физическими адресами.

Очередь команд

            УСШ – формирует циклы шины, выбирает команды в очередь, из которой две очередные команды поступают в блок управления в устройстве декодирования. Формирование очереди команд ускоряет быстродействеие на 60-80 %.

Режимы работы

            Микропроцессор может работать в двух режимах: максимальной и минимальной конфигурации.

            В режиме минимальной конфигурации микропроцессор сам формирует набор сигналов для управления буферами на шинах и сигналов управления памятью и портами. Этот режим предназначен для однопроцессорных систем.

            В режиме максимальной конфигурации микропроцессор код тика машинного цикла, на основе которого формируется сигналы управления буферами на шинах и сигналов управления памятью и портами.

 

            Сигнал BHE разрешает передачу старшего байта при операции со словом.

Адресация к портам.

            Порты могут быть однобайтными или двубайтными.

 

Режим максимальной конфигурации

            Многопроцессорная система строиться в виде модулей. Каждый модуль имеет шину, память, и общий ресурс – память. Плюсы такого метода состоят в увеличении мощности и надежности ЭВМ.

Структурная схема микропроцессора 8086 в режиме максимальной конфигурации.

            В этом режиме восемь выводов микропроцессора переопределяются.

 

            В режиме максимальной конфигурации вывод MN/MX – заземляется и микропроцессор в каждом машинном цикле формирует тип машинного цикла по линии S0-2. Таким образом может существовать восемь типов машинных циклов: пассивный цикл, чтение/запись в память, чтение/запись в порты, машинный цикл останова, машинный цикл обработки прерываний, машинный цикл выработки кода команд. На основе S0-2 и сигналов CLK контроллер шины формирует сигналы управления буферами.

ALE – сигнал-строб адреса, идущего по шине AD в первом такте машинного цикла. Контроллер шины формирует сигнал для управления передачи, служащий для определения передачи по шине данных.

DEN – разрешение ввода-вывода данных, который открывает входные вентили буферы данных, и внешней части шины данных.

            Контроллер шины формирует семь командных сигналов для управления памятью и портами.

Сигнал INTA формируется в виде двух импульсов. С первым импульсом контроллер прерываний извещается о переходе и машинном цикле обработки прерываний. Второй импульс служит для чтения векторов прерывания с шины данных. Когда PIC получил второй сигнал INTA, он сбрасывает восьмибитный код, а на выходе SP/EN формирует сигнал, открывающий буфер. Это позволяет микропроцессору считать с шины данных вектор.

Сигнал LOCK – если необходимо выполнить команду полностью и что бы блокировать доступ других микропроцессоров к шине и памяти перед данной командой устанавливается префикс LOCK. Под его действием формируется сигнал LOCK, который поступает в схему арбитажа,  и блокирует доступ других микропроцессоров к системной шине.

QS0-1 – выводы кода состояния очереди команд. Эти сигналы поступают к сопроцессору. Возможные состояния очереди: очередь обнулена, из очереди выбран первый байт, из очереди выбран очередной байт, очередь пассивна.

RQ/GT0 – вход с 0 – наиболее высокий приоритет.

 

Программная модель 8086

 

 

15                 8

7                   0

 

 

аккумулятор

AX

AH (100)

AL (000)

000

регистры

счетчик

CX

CH (101)

CL (001)

001

данных

данные

DX

DH (110)

DL (010)

010

 

рег. базы

BX

BH (111)

BL (011)

011

 

указатель стека

 

SP

100

указательные

указатель базы

 

BP

101

и индексные

индекс источника

 

SI

110

регистры

индекс приемника

 

DI

111

 

 

 

 

 

 

 

 

IP

 

 

 

 

FLAGS

 

 

сегментные регистры

 

 

 

 

кода

 

CS

00

 

данных

 

DS

01

 

стека

 

SS

10

 

доп. данных

 

ES

11

 

 

 

GS

 

 

 

 

FS

 

 

 

 

 

Форматы команд. Режимы адресации команд и данных. Система команд. Кодирование команд

            Микропроцессор 8086 имеет длину команды от 1 до байт. Перед командой может быть установлен один из четырех параметров.

LOCK – префикс блокировки.

REP – префикс повторения.

WAIT – префикс ожидания.

CS,DS,SS,ES – префикс пересегментации.

            Использование базового адреса для определения физического используется по умолчанию, но его можно переопределить. Длина команды в микропроцессоре 8086 не контролируется.

Форматы команд.

1. Однобайтные команды.

            7-4: КОП

            3-2: seg

            1-0: reg – код регистра, участвуевовшего в операции, либо КОП.

2. Двухбайтные команды.

            Первый байт:

                        7-4: КОП

                        3-0: КОП или код условия передачи управления.

            Второй байт:

                        7-0: disp/ports/vects (смещение/номер порта/вектор прерывания)

3.Трехбайтные команды.

            Первый байт:

                        7-4: КОП

                        3-0: КОП или регистр.

            Второй и третий байты: data/offset

4. Четырехбайтные команды.

            Первый байт:

                        7-0: КОП

            Второй байт:

                        7-6: mod

                        5-3: reg

                        2-0: reg/mem

            Третий и четвертый байты: disp

5. Пятибайтные команды.

            Первый байт:

                        7-0: КОП

            Остальные байты: данные.

6. Шестибайтные команды.

            Первый байт:

                        7-2: КОП

                        1: КОП/S. S – признак расширения байта слова.

                        0: W

            Второй байт:

                        7-6: mod

                        5-3: reg

                        2-0: reg/mem

            Третий и четвертый байты: offset

            Пятый и шестой: data

Способы адресации.

            Под способами адресации понимается способ формирования адреса данных в команде. Известно более 20 режимов адресации. При использовании различных режимов адресации преследуются следующие цели.

1. вычисление адреса в процессе выполнения программы,

2. поддержка языков высокого уровня,

3. оперирование адресами в форме удобной для массивов, строк,

4. определение адреса наименьшим количеством бит в команде,

5. вычисление адреса относительно текущей команды.

            Основные способы адресации к данным кодируются во втором байте команды.

 

            Бит d назначает регистр как источник или приемник операнда. d=1 – в микропроцессор (r/m – источник), d=0 – из микропроцессора (r/m – приемник).

            v=0 – обычный сдвиг, v=1 – параметрический сдвиг, содержимое CL по умолчанию.

            Физический адрес ячейки=base(CS,DS,SS,ES)×16+offset(IP,SI,DI,BX,BP,EA)

            EA(эффективный адрес)=base(BP,BX)+index(SI,DI)+disp

10 режимов адресации.

1. Базовая адресация. Базовая часть эффективного адреса находиться в одном из регистров: BX,BP.

            Программист знает смещение строки.

2. Индексная адресация.

            Программист знает disp, а элемент вычисляется при выполнении программы.

3. Базово-индексная адресация

4. Относительная адресация. Применяется в командах передачи управления по и без условия.

            Смещение суммируется с указателем инструкций, переносы сбрасываются и результат заноситься в регистр инструкций.

5. Адресация портов.

            DX – хранит адрес порта.

            IN AL, [DX]

            IN AX, [DX]

            OUT [DX],AL

            OUT[DX],AX

Организация прерываний в микропроцессор 80х86

Реальный режим (real mode).

INTR – маскируемые прерывания

STI – разрешить прерывания

CLI – запретить прерывания

NMI – не маскируемые прерывания

            INT n; n=0..255

            1100110V, если V=0 – INT3, V=1 – двухбайтное прерывание.

IRET – возврат из подпрогаммы

 

            Имеются аппаратные прерывания INTR и NMI и внутренние – програмные прерывания.

 

            1111`1111`00 ® 0000`0011`1111`1100 = 03FCh

            `По команде INTR или в результате принятия к обслуживанию аппаратного запроса на прерывание или в результате возникновения особого случая микропроцессор выполняет следующие действия.

            1. (SP)-2®SP

            2. (F)®стек

            3. 0®IF, 0®TF

            4. содержимое сегментного регистра кода в стек. (CS)®стек

            5. обрабатывается начальный адрес обработки прерывания ADR.

            6. (ADR+2)®

            7. (SP)-2®(SP)

            8. (IP)®стек.

            После выполнения команды осуществляется возврат командой IRET. При этом выполняются следующие действия.

            1. из стека ®IP

            2. (SP)+2®SP

            3. из стека ®CS

            4. (SP)+2®SP

            5. из стека в F.

            Первые 32 коды прерывания зарезервированы.

0 – ошибка деления на 0

1 – по TF=1

2 – NMI

3 – INT3

4 – OF=1