Архитектура 16-разрядного микропроцессора (Лекция)

 

ПЛАН ЛЕКЦИИ

1. Распределение адресного пространства

2. Способы адресации методы формирования исполнительного адреса

3. Система команд i8086

 

Переход к 16-разрядным микропроцессорам - i8086 и другие аналогичной вычислительной мощности - ознаменовался качественным скачком всех основных характеристик МП: не просто увеличение разрядности, но значительное изменение архитектуры, системы команд, принципов организации структуры. В машину пользователя i8086 включатся память объемом 1М байт и две области портов ввода и вывода по 64К каждая.

Рассмотрим "машину пользователя" на базе i8086 (К1810ВМ86):

Рис. 1. МП i8086 - машина пользователя

 

Разработчики i8086 старались сохранить возможность преемственности программного обеспечения i8080, поэтому в составе i8086 можно выделить подмножество регистров i8080 (соответствующие подмножество сохранено и в системе команд). Помимо операций с 16-разрядными регистрами общего назначения (РОН) AX..DX, допускается обращение к каждому байту этих регистров - AL..DL, AH..DH. В некоторых командах РОНы выполняют определенные по умолчанию функции счетчиков, индексных регистров и т.п. (см. Рис. 2.4).

16-разрядные регистры BP, SI, DI используются для образования исполнительных адресов памяти (см. ниже), SP - указатель стека, IP - программный счетчик (СчК), F - регистр флагов. Младший байт F полностью повторяет формат регистра признаков i8080, а старший имеет след. формат:

 

 

 

где DF –определяет направление модификации адресов массивов в командах цепочек (увеличение или уменьшение адреса);

IF – маскирует внешнее прерывание по входу INT (при IF = 1 прерывание разрешено);

TF – управляет пошаговым режимом работы микропроцессора. При TF = 1 после выполнения каждой команды автоматически формируется прерывание с вектором 4.

 

1. Распределение адресного пространства

Адресное пространство МП определяется в i8086 разрядностью шины адреса/данных + адреса и составляет 220 = 1М байт. В этом адресном пространстве МП одновременно доступны четыре сегмента, два из которых (DS и ES) предназначены для размещения данных, CS - сегмент кода (для размещения программы) и SS - сегмент стека.

Размеры сегментов определяются разрядностью логических адресов команд, данных и стека. Логические адреса команд и стека (верхушки) хранятся в 16-разрядных регистрах IP и SS соответственно, а логический адрес данных вычисляется в команде (см. ниже) и так же составляет 16 бит. Таким образом, размер каждого сегмента в i8086 составляет 64К байт. Положение сегмента в адресном пространстве (его начальный адрес) определяется содержимым одноименного сегментного регистра. Формирование физического адреса иллюстрируется схемой.

Граница сегмента в адресном пространстве может быть установлена не произвольно, а таким образом, чтобы начальный адрес сегмента был кратен 16.

 

15                                 0

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

.0 0 0 0

               15                               0

 

Логический адрес

 

19                                              0

Физический адрес

Рис. 2. Формирование физического адреса

 

По умолчанию сегментные регистры выбираются для образования физического адреса след. образом: при считывании команды по адресу IP используется CS, при обращении к данным - DS или ES, при обращению к стеку - SS. С помощью специальных приставок к команде (префикса) можно назначить для использования произвольный сегментный регистр (кроме пары CS:IP, которая не подлежит модификации). Границы сегментов могут быть выбраны т.о., что сегменты будут изолированы друг от друга, пересекаться или даже полностью совпадать. Например, если загрузить CS=SS=DS=ES=0, то все сегменты будут совпадать друг с другом и начинаться с нулевого адреса - вариант организации адресного пространства i8080.

 

2. Способы адресации методы формирования исполнительного адреса

 

Длина команды i8086 может составлять от 1 до 6 байт. Формат команды представлен ниже.

1 байт

2 байт

3..6 байты

 

КОП

D

W

MOD

REG

R/M

[Смещение. данные]

 

7        2    1      0

7   6    5         3    2           0

 

Рис. 3. Формат команды МП i8086

 

Большинство команд i8086 являются двухадресными, причем один адрес определяет регистр процессора, а другой - память или регистр. Поля команды имеют следующие назначения:

D - определяет направление передачи информации: при D = 1 REG является приемником, иначе - источником;

W - определяет длину операндов в команде: при W = 1 длина операндов составляет 16 бит (слово - word), иначе - 8 бит(байт);

REG - определяет регистр для первого операнда.

 

Таблица. 1

REG

(R/M)

Регистр

W = 0

W = 1

000

AL

AX

001

CL

CX

010

DL

DX

011

BL

BX

100

AH

SP

101

CH

BP

110

DH

SI

111

BH

DI

 

Поля R/M и MOD определяют способ формирования адреса второго операнда, который располагается чаще всего в памяти. Далее приведены способы формирования адресов памяти для двух значений поля MOD.

Таблица 2

R/M

MOD = 00

MOD = 01

Логический

адрес

Сегмент

Логический

адрес

Сегмент

000

BX+SI

DS

BX+SI+d8

DS

001

BX+DI

DS

BX+DI+d8

DS

010

BP+SI

SS

BP+SI+d8

SS

011

BP+DI

SS

BP+DI+d8

SS

100

SI

DS

SI+d8

DS

101

DI

DS

DI+d8

DS

110

 d16

DS

BP+d8

DS

111

BX

DS

BX+d8

DS

ПРИМЕЧАНИЕ:

d8 и d16 означают соответственно 8- и 16-разрядное смещение (3 и 3+4 байты команды).

 

При операциях с d8 осуществляется его "знаковое расширение" до 16 бит - биты 15..8 принимают значение бита 7 (знака).

При значении MOD = 10 используются те же регистры, что при MOD = 01 (см. Табл. 2.4), но вместо d8 используется d16.

При MOD = 11 вторым операндом команды является регистр.

Таким образом, операнд в памяти может адресоваться прямо (MOD = 00, R/M = 110) или косвенно посредством содержимого базовых (BP, BX) или индексных (SI, DI) регистров, а так же их суммы. Режимы адресации спроектированы с учетом эффективной реализации языков высокого уровня. Например, к простой переменной можно обратиться в режиме прямой адресации, а к элементу массива - в режиме косвенной адресации посредством BX, SI. Режим адресации через BP предназначен для доступа к данным из сегмента стека, что удобно при реализации рекурсивных процедур и компиляторов языков высокого уровня.

 
3. Система команд i8086

Система команд насчитывает 113 базовых команд, объединенных в следующие группы.

 

1) Команды передачи данных:

а) между регистрами и памятью (включая стек), обмен содержимым источника и приемника;

б) ввода, вывода, табличного преобразования;

в) загрузка исполнительного адреса в РОНы, загрузка 4-байтового адресного объекта в регистры-указатели (начальный адрес сегмента и смещение в сегменте);

г) передача содержимого регистра F флагов в память, в стек и из стека.

2) Арифметические команды:

+ - × / двоичных чисел со знаком и без знаков (произведение и делимое представляются числами двойной длины),

коррекция десятичная + - упакованных двоично-десятичных чисел,

коррекция десятичная + - × / распакованных двоично-десятичных чисел.

3) Логические команды и сдвиги:

инверсия, конъюнкция, дизъюнкция, неравнозначность;

TEST - поразрядная конъюнкция операндов с установкой флагов но без занесения результатов;

сдвиги на 1 или заданное число разрядов (константа сдвига располагается в CL).

4) Команды передачи управления:

переходы, вызовы, возвраты - имеют две разновидности - внутрисегментные ("близкие") и межсегментные ("дальние").

При близких передачах загружается только IP, при дальних - IP и CS. Передачи управления могут быть прямыми (целевой адрес - в команде) или косвенными (целевой адрес вычисляется с использованием стандартных режимов адресации)

В 16 командах условных переходов проверяются отношения знаковых и беззнаковых чисел. Имеются 4 команды управления циклами, которые рассчитаны на передачу числа повторений цикла в регистре CX.

5) Команды обработки цепочек данных

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

 

Флешка под паролем v1.2
Флешка под паролем v1.2


89 РУКОПИСНЫЕ ШРИФТЫ
89 РУКОПИСНЫЕ ШРИФТЫ


Adjustment Program Epson Stylus C110 Ver.1.3.1
Adjustment Program Epson Stylus C110 Ver.1.3.1