Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Общий алгоритм выполнения команды МП i8086



Формат команды МП i8086.

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

Префиксы Команда
Повтор Замена сегмента Код операции Пост байт Смещение Операнд
(0:1) (0:1) (1) (0:1) (0:2) (0:2)

Префикс повторения - определяет кол-во повторений команды при автомат. обработке цепочек.

Префикс замены сегмента - явно определяет сегментный регистр для конкретной команды.

REG

REG= 00:ES,01:CS,10:SS,11:DS

mov AX,[BX]- mov ES:[BX]

Код операции- определяет какая операция выполняется, кроме кода операции содержит служебные виды. Расширение кода операции может находиться во втором байте команды.

Постбайт- байт режима адресации, определяет виды и тип операндов.

Mmod(2) Rreg(3) r r/m(3)

mod совместно с полем r/m задает режим адресации.

Reg – кодирует используемый в команде регистр

r/m – регистр или память.

Смещение- 8:16 разрядный, если команде задано смещение mov AX,[BX+2]. В команде указывается младший байт, а затем старший байт смещения.

Непосредственный операнд - содержится в коде команды ,м/б 1-2 байтовым.

10. Формат двухоперандной команды:

Регистр-регистр, регистр-память.

КОП d w mod reg R/m Смещение младшего байта Смещение старшего байта

КОП - команда, d- бит направления, направление передачи данных(1-в регистр,0-из reg), w- размер, тип операнда(0-байт,1-слово 2b)

mod r/m
W=0 W=1
[BX+SI] [BX+SI+disp8] [BX+SI+disp16]   [BX+DI+disp16]   [BP+SI+disp16]   [BP+DI+disp16]   [SI+disp16]   [DI+disp16]   [BP+disp16]   [BX+disp16] Al Ax
[BX+DI] [BX+DI+disp8] Cl Cx
[BP+SI] [BP+SI+disp8] Dl Dx
[BP+DI] [BP+DI+disp8] Bl Bx
[SI] [SI+disp8] Ah Cp
[DI] [DI+disp8] Ch Bp
Disp 16 [BP+disp8] Dh Si
[BX] [BX+disp8] Bh Di

Поле reg задает регистр теми же значениями, что и поле регистров память.

Код операции- определяет какая операция выполняется, кроме кода операции содержит служебные виды. Расширение кода операции может находиться во втором байте команды.

Постбайт- байт режима адресации, определяет виды и тип операндов.

 

Система прерываний МП i8086. Понятие прерывания, вектора прерывания. Таблица векторов прерываний.

Прерывание - сигнал, заставляющий МП прекратить выполнение текущей программы и переключиться на выполнение др. программы, называемой процедурой обработки прерывания (ПОП).

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

Виды прерываний:Все прерывания делятся на внутренние и внешние.

Внутренниевозникают в результате работы самого МП, могут инициализироваться самим МП (называются логическими прерываниями), либо инициализируются программно (наз. программными).

Внешние прерывания возникают по сигналу какого-либо устройства.

Все внешние делятся на маскируемые и немаскируемые. МП имеет 2 входа, по которым может поступать сигнал прерывания. Во-первых, это вход, который называется INTR - запрос на прерывание поступает с контроллера прерываний (маскируемые или аппаратных прерывания). Второй вход, минуя контроллер NMI (немаскируемые прерывания).

МП имеет двухуровневую векторную систему прерываний с внутренними и внешними источниками.

Может распознавать до 256 различных прерываний. Любой источник прерывания характеризуется своим номером (кодом 0..256) - однозначно определяется вид прерывания. МП использует данный номер для определения точки входа в специальную таблицу, которая называется таблицей векторов прерываний. Она располагается в младших адресах адресного пространства, начиная с логического

адреса 00. Занимает 1 Kb памяти, состоит из ячеек размером по 4b. Любая ячейка содержит вектор (адрес) процедуры обработки прерывания в формате (сегмент-смещение CS:IP).

0-прерывание хранится по делению на 0. CS:IP=2BE805F1(младший байт хранится в ячейке с младшим адресом). Часть номеров прерываний определяется архитектурой МП, часть определяется ОС и остальные относятся к пользовательским прерываниям.

Пример двух ячеек таблицы векторов прерываний:

 

№ вектора прерывания Адрес ячейки ОЗУ Наименование ячейки ОЗУ Содержимое ячейки ОЗУ  
    00 h 0000:0000 IP Low E8 CS:IP =019Ah:4EE8h - адрес ПОП с кодом типа =00h
0000:0001 IP Hight 4E
0000:0002 CS Low 9A
0000:0003 CS Hight
  1F h 0000:007C IP Low CS:IP =1751h:0827h - адрес ПОП с кодом типа =1Fh  
0000:007D IP Hight
0000:007E CS Low
0000:007F CS Hight

 




©2015 studopedya.ru Все права принадлежат авторам размещенных материалов.