Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
Лекция. Микропроцессор 8086
Условная схема микропроцессора 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


