Главная -> Книги

(0) (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16) (17) (18) (19) (20) (21) ( 22 ) (23) (24) (25) (26) (27) (28) (29) (30) (31) (32) (33) (34) (35) (36) (37) (38) (39) (40) (41) (42) (43) (44) (45) (46) (47) (48) (49) (50) (51) (52) (53) (54) (55) (56) (57) (58) (59) (60) (61) (62) (63) (64) (65) (66) (67) (68) (69) (70) (71) (72) (73) (74) (75) (76) (77) (78) (79) (80) (81) (82) (83) (84) (85) (86) (87) (88) (89) (90) (91) (92) (93) (94) (95) (96) (97) (98) (99) (100) (101) (102) (103) (104) (105) (106) (107) (108) (109) (110) (111) (112) (113) (114) (115) (116) (117) (118) (119) (120) (121) (122) (123) (124) (22)

ное смещение). Во втором случае допускается адресация посредством содержимого базового регистра (BP или ВХ), индексного регистра (SI или DI), а также суммы содержимого базового и индексных регистров. Всего получается 24 режима адресации: 3 способа интерпретации поля mod и 8 способов интерпретации поля г/т.

Режимы адресации спроектированы с учетом эффективной реализации языков высокого уровня. Например, к простой переменной можно обратиться в режиме прямой адресации, а к элементу массива - в режиме косвенной адресации посредством ВХ, SI и смещения. Режим адресации через BP предназначен для доступа к данным из сегмента стека, а не из сегмента данных. При реализации рекурсивных процедур и компиляторов языков высокого уровня с блоковой структурой данные часто запоминаются в сегменте стека.

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

Команды передачи данных. Команды данной группы подразделяются на четыре разновидности:

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

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

в) команды загрузки исполнительного адреса в регистры общего назначения, а также загрузки 4-байтного адресного объекта в регистры-указатели (начальный адрес сегмента и смещение в сегменте); эти команды предоставляют пользователю возможность управлять механизмом адресации микропроцессора;

г) команды передачи содержимого регистра флажков (запоминание в памяти и загрузка из памяти регистра FLAGSL, включение в стек и извлечение из стека всего регистра FLAGS).

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



Логические команды и команды сдвига. В эту группу входят поразрядные операции инверсии, конъюнкции, дизъюнкции и исключающего ИЛИ, а также команда TEST проверки операнда. Последняя выполняет поразрядную конъюнкцию, устанавливает по результату флажки, но никуда не загружает результат. Наряду с командами однобитных (статических) сдвигов имеются команды многобитных (динамических) сдвигов, в которых константа сдвига находится в регистре CL.

Команды передачи управления (переходы, вызовы, возвраты) имеют две разновидности: внутрисегментные («близкие»), целевой адрес которых, загружаемый в указатель команд IP, находится в текущем сегменте кода, и междусегментные («далекие»), целевой адрес которых определяет новые значения регистров CS и IP. Передачи управления могут быть прямыми (целевой адрес находится в команде) и косвенными (целевой адрес вычисляется с использованием стандартных режимов адресации). В 16 командах условных переходов проверяются отношения знаковых и беззнаковых чисел.

Имеются 4 команды управления циклами, которые рассчитаны на передачу числа повторений цикла в регистре СХ (счетчик).

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

Микропроцессор имеет двухуровневую векторную приоритетную систему прерываний с двумя линиями запросов прерываний. Вход NMI немаскируемого прерывания имеет больший приоритет, чем вход INTR маскируемых прерываний. Прерывания воспринимаются между командами, причем запросы INTR воспринимаются при условии, что IF=1. Реагируя на прерывание, микропроцессор автоматически включает в стек содержимое регистров FLAGS, CS и IP. После этого сбрасываются биты IF и TF, а в регистры CS и IP загружаются новые значения векторов прерываний, что инициирует выполнение соответствующей подпрограммы обслуживания прерывания. Таблица векторов прерываний занимает первые 1024 байта физической памяти. Каждый вектор представлен 4 байтами и содержит новые значения, загружаемые в регистры CS и IP.



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

Метка- Код Операнд Комментарий

CHECK: LOCK

MOV XCHG TEST JNZ

*** *** ***

AL, 1 SEMA, AL AL, AL TEST

SEMA, 0

Установка блокировки Обмен семафора и AL Установка флажков по AL Зацикливание до освобождения Критический сегмент программы

Освобождение ресурса

3-6. СЕКЦИОННЫЕ МП

Одной из движущих сил развития МП является совершенствование технологической базы. Стремление улучшить быстродействие МП за счет биполярной технологии: транзисторно-транзисторной логики с диодами Шоттки (ТТЛШ), интегрально-инжекционной логики (ИЛ), эмит-терно-связанной логики (ЭСЛ) - привело к появлению в 1974 г. первого секционного МП на основе ТТЛШ. Выполнение МП на многокристальной основе связано с внутренней функциональной сложностью МП и ограничениями на плотность компонентов на одном кристалле, с числом выводов корпуса, допустимым размером кристалла для биполярной технологии, с рассеиваемой мощностью.

Функционально секционные МП разбиты на ряд модулей, конструктивно реализованных в виде отдельных кристаллов БИС, типичными представителями которых являются: арифметико-логическое устройство и регистры общего назначения с возможностью наращивания длины слова с кратностью, соответствующей разрядности БИС; контроллер последовательности микрокоманд (КПМК); память микрокоманд (ПМК).



(0) (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16) (17) (18) (19) (20) (21) ( 22 ) (23) (24) (25) (26) (27) (28) (29) (30) (31) (32) (33) (34) (35) (36) (37) (38) (39) (40) (41) (42) (43) (44) (45) (46) (47) (48) (49) (50) (51) (52) (53) (54) (55) (56) (57) (58) (59) (60) (61) (62) (63) (64) (65) (66) (67) (68) (69) (70) (71) (72) (73) (74) (75) (76) (77) (78) (79) (80) (81) (82) (83) (84) (85) (86) (87) (88) (89) (90) (91) (92) (93) (94) (95) (96) (97) (98) (99) (100) (101) (102) (103) (104) (105) (106) (107) (108) (109) (110) (111) (112) (113) (114) (115) (116) (117) (118) (119) (120) (121) (122) (123) (124)