Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Структура системы средней сложности на базе микропроцессора К1810ВМ86



 

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

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

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

Рис. 5.3 Структура системы средней сложности
Таблица 5.3 Назначение сигналов в минимальном и максимальном режимах
Режим Назначение вывода в максимальном режиме
Минимальный (MN/MX#=1) Максимальный (MN/MX#=0)    
WR# INTA# ALE M/IO# DT/R# DEN# HOLD HLDA LOCK# QS1 QS2 S2# S1# S0# RQ#/GT0# RQ#/GT1# Блокировка Состояние очереди команд Состояние МП Запрос/представление

 

На выводах S0#, Sl#, S2# в тактах Т1, Т2 и Т4 присутствует код состояния микропроцессора, характеризующий текущий цикл работы и определяющий способ использования шины A/D. Во время тактов ТЗ и Т4, когда шина A/D не используется, на выводах S0#, Sl#, S2# присутствует код 111. На основе этих сигналов о состоянии микропроцессора системный контроллер К1810ВГ88 формирует необходимые для управления внешними устройствами сигналы системной шины. Таким образом, в максимальном режиме микропроцессор обязательно работает со­вместно с контроллером системной шины.

 

Таблица 5.4 Сигналы состояния микропроцессора
S2# Sl# S0# Состояние МП
Выдача сигнала INTA#
Чтение данных из ВУ
Запись данных на В У
Останов
Выборка команды
Чтение из памяти
Запись в память
Нерабочее состояние

 

Выводы RQ#/GT0# и RQ#/GT1# являются двунаправленными линиями, предназначенными для организации захвата системной шины другими устройствами. Вход запроса захвата RQ#/GT0# имеет более высокий приоритет, а в остальном эти входы функционально эквиваленты. Захват начинается с поступления на один из входов RQ#/GTi# сигнала запроса шины длительностью в один такт от внешнего устройства (если запрос приходит на оба входа, выбирается наиболее приоритетный). Во время очередного такта Т1 или Т4 на этот вывод микропроцессор подает выходной сигнал захвата, который информирует запросившее устройство о разрешении.

В следующем такте микропроцессор освобождает шину сигналом, который также подается на вывод RQ#/GTi# микропроцессора, и имеет длительность один такт. Получив этот сигнал, микропроцессор возобновляет работу. Вывод LOCK#, так же как и выводы RQ#/GTi#, служит для организации взаимодействия микропроцессора с внешними устройствами. Активный сигнал LOCK# = 0 вырабатывается с помощью специальной команды и позволяет, в случае необходимости, запретить захват шины микропроцессора внешними устройствами.

Выводы QS0, QS1 несут информацию о формировании очереди из байтов команд. Для дешифрации сигналов состояния микропроцессора (S0, SI, S2) в систему (при использовании микропроцессора в максимальном режиме) включается системный контроллер К1810ВГ88, позволяющий осуществить полную развязку управляющей, адресной и информационной шин, а также учесть различия ВУ и ЗУ при обращении к ним. Это позволяет полностью реализовать возможности адресации, предусмотренные ВМ86, т.е. возможности обращения к 1 Мбайт памяти и 64 Кбайт портов ввода-вывода.

 

Программная модель микропроцессора Intel 8086

Процессор имеет 14 регистров разрядностью 16 бит (рис. 5.4), операнды могут иметь разрядность 8 и 16 бит и представлять знаковые и беззнаковые двоичные и двоично-десятичные числа. Среднее время выполнения команды занимает 12 тактов синхронизации, один цикл обмена на внешней шине занимает 4 такта (без такта ожидания).

 
Рис. 5.4 Регистры микропроцессора i8086  

 

Пользовательские регистры

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

Восемь 16-битных регистров, которые могут использоваться программистами для хранения данных и адресов (их еще называют регистрами общего назначения (РОН)):

AX/AH/AL;

BX/BH/BL;

DX/DH/DL;

CX/CH/CL;

BP;

SI;

DI;

SP;

Четыре сегментных регистра:

CS, DS, SS, ES;

Регистры состояния и управления:

Flags (F), IP;

Многие из этих регистров приведены с наклонной разделительной чертой – это части одного большого 16-разрядного регистра. Их можно использовать в программе как отдельные объекты.

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

 

Регистры общего назначения

Перечислим регистры, относящиеся к группе регистров общего назначения. Так как эти регистры физически находятся в микропроцессоре внутри арифметико-логического устрой­ства (АЛУ), то их еще называют регистрами АЛУ:

AX/AH/AL (Accumulator register) – аккумулятор. Применяется для хранения промежуточных данных. В некоторых командах использование этого регистра обязательно;

BX/DH/BL (Base register) – базовый регистр, или регистр базы. Применяется для хранения базового адреса некоторого объекта, находящегося в памяти;

CX/CH/CL (Count register) – регистр-счетчик. Применяется в командах, производящих некоторые повторяющиеся действия. Его использование зачастую неявно и скрыто в алгоритме работы соответствующей команды. К примеру, команда организации цикла loop, кроме передачи управления команде, находящейся по некоторому адресу, анализирует и уменьшает на единицу значение регистра CX;

DX/DH/DL (Data register) – регистр данных. Так же, как и регистр AX/AH/AL, он хранит промежуточные данные. В некоторых командах его использование обязательно; для некоторых команд это происходит неявно, например, при умножении слов.

Следующие два регистра используются для поддержки так называемых цепочечных команд, производящих последовательную обработку цепочек элементов, каждый из которых может иметь длину 16 или 8 бит:

SI (Source Index register) – индекс источника. Этот регистр используется цепочечными командами и содержит текущий адрес элемента цепочки-источника;

DI (Destination Index register) – индекс приемника. Этот регистр используется цепочечными командами и содержит текущий адрес цепочки-приемника.

В архитектуре микропроцессора i8086, на программно-аппаратном уровне, поддерживается такая структура данных, как стек. Для работы со стеком микропроцессор имеет специальный набор команд, а в программной модели микропроцессора для этого существуют специальные регистры:

SP (Stack Pointer register) – регистр указателя стека. Содержит указатель вершины стека в текущем сегменте стека.

BP (Base Pointer register) – регистр указателя базы кадра стека. Предназначен для организации произвольного доступа к данным внутри стека.

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

 

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

Микропроцессор i8086 имеет четыре сегментных регистра: CS, DS, SS, ES. Их существование обусловлено спецификой организации и использования оперативной памяти микро­процессорами Intel. Она заключается в том, что микропроцессор аппаратно поддерживает структурную организацию программы в виде четырех частей, называемых сегментами. Соответственно, такая организация памяти называется сегментной.

Для того чтобы указать на сегменты, к которым программа имеет доступ в конкретный момент времени, и предназначены сегментные регистры. Фактически, с небольшой поправкой, как мы увидим далее, в этих регистрах содержатся адреса памяти, с которых начинаются соответствующие сегменты. Логика обработки машинной команды построена так, что при выборке команды, доступе к данным программы или к стеку неявно используются адреса во вполне определенных сегментных регистрах. Микропроцессор поддерживает следующие типы сегментов:

Сегмент кода. Содержит команды программы. Для доступа к этому сегменту служит регистр CS (code segment register) – сегментный регистр кода. Он указывает на начало сегмента, содержащего исполнимый код программы.

Сегмент данных. Содержит обрабатываемые программой данные. Для доступа к этому сегменту служит регистр DS (data segment register) – сегментный регистр данных, который хранит адрес сегмента данных текущей программы.

Сегмент стека. Этот сегмент представляет собой область памяти, называемую стеком. Работу со стеком микропроцессор организует по следующему принципу: последний записанный в эту область элемент выбирается первым. Для доступа к этому сегменту служит регистр SS (stack segment register) – сегментный регистр стека, содержащий адрес сегмента стека.

Дополнительный сегмент данных. Неявно алгоритмы выполнения большинства машинных команд предполагают, что обрабатываемые ими данные расположены в сегменте данных, адрес которого находится в сегментном регистре DS. Если программе недостаточно одного сегмента данных, то она имеет возможность использовать еще один дополнительный сегмент данных. Но в отличие от основного сегмента данных, адрес которого содержится в сегментном регистре DS, при использовании дополнительного сегмента данных его адрес требуется указывать явно с помощью специальных префиксов переопределения сегментов в команде. Адрес дополнительного сегмента данных должен содержаться в регистре ES (extension data segment registers).

 







Читайте также:

Последнее изменение этой страницы: 2016-03-22; Просмотров: 126; Нарушение авторского права страницы


lektsia.com 2007 - 2017 год. Все права принадлежат их авторам! (0.008 с.) Главная | Обратная связь