русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Структурная схема процессора i8086


Дата добавления: 2015-06-12; просмотров: 5969; Нарушение авторских прав


Родоначальником современного семейства процессоров фирмы Intel является процессор i8086. На рисунке 2 представлена структурная схема этого процессора. В его состав входят: устройство управления (УУ), арифметико-логическое устройство (АЛУ), блок преобразования (формирования) адресов и регистры.

Рисунок 2 – Структура процессора i8086

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

Всего в состав микропроцессора i8086 входят четырнадцать 16-ти битовых регистров, каждый из которых может иметь специальное назначение, которое будет пояснено далее:

а) четыре регистра общего назначения (называемые также регистрами данных):

AX – регистр-аккумулятор,

BX – базовый регистр,

СХ – счетчик,

DX – регистр-расширитель аккумулятора;

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

SI – регистр индекса источника,

DI – регистр индекса результата,

BP – регистр-указатель базы;

в) три управляющих регистра:

SP– регистр-указатель стека,

IP – регистр-счетчик команд,

Flags – регистр флагов;

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

CS – регистр сегмента кодов,

DS – регистр сегмента данных,

ES – регистр дополнительного сегмента данных,

SS –регистр сегмента стека.

Организация основной памяти ВС на базе процессоров i8086.Минимальной адресуемой единицей основной памяти является байт, состоящий из 8 бит. Адресовать отдельно бит нельзя. Если необходимо получить доступ к определенному биту, то сначала ищется соответствующий байт, а затем уже в нем – нужный бит.



Номер байта является его физическим адресом в устройстве памяти.

Для размещения программ и данных в основной памяти выделяются специальные области – сегменты. Сегмент при 16-ти разрядной адресации – фрагмент памяти, начинающийся с адреса кратного 16 и имеющий размер от 1 байта до 64 Кб.

Следовательно, базовый адрес сегмента всегда содержит в 4-х младших разрядах нули. Старшая часть адреса сегмента без последних четырех нулей называется сегментным адресом и хранится в одном из 4-х сегментных регистров. При этом каждый сегментный регистр используется для хранения адреса определенного сегмента:

¨ СS – сегмента кодов, т.е. собственно программы;

¨ DS, ES – сегмента данных;

¨ SS – сегмента стека.

Физический адрес любых данных в памяти формируется из 16-ти битового смещения и 16-ти битового сегментного адреса по специальной схеме. Сначала к сегментному адресу аппаратно дописываются 4 двоичных нуля. В результате получается 20-ти битовый физический адрес начала сегмента. Затем выполняется сложение 20-ти битового базового адреса сегмента и 16-ти битового смещения. Откуда получается 20-ти битовый физический адрес данных (см. рисунок 3).

Рисунок 3 – Формирование 20-ти разрядного физического адреса

Таким образом, для адресации основной памяти в микропроцессоре i8086 предусматриваются 20-битовые адреса, что позволяет работать с основной памятью до 1 Мб.

Если программа включает более чем в один сегмент кодов, данных и стека, то сегментные регистры в процессе ее работы перегружаются.

Смещение для каждого типа сегмента формируется по своим правилам (см. рисунок 4). Для стека смещение хранится в регистре SP, для сегмента кодов – в IP, а для сегментов данных – рассчитывается в соответствие с форматом команды, как исполнительный адрес.

Рисунок 4 – Адресация различных сегментов сегментными регистрами

Стек при 16-ти разрядной адресации представляет собой специальным образом организованную область памяти, осуществляющую последовательную запись элементов данных длиной 2 байта (слово) и чтение их в порядке, обратном порядку записи. Для хранения адреса последнего слова, занесенного в стек, служит регистр-указатель стека . Каждый раз при записи данных значение SP уменьшается на 2, а при чтении – увеличивается на 2 (см. рисунок 5). Таким образом, стек растет в область младших адресов, и в начальный момент времени указатель SP должен содержать максимально возможное для конкретного размера стека смещение.

Рисунок 5 – Процессы записи в стек и чтения из стека:

а – текущее состояние стека, б – запись X, в – чтение X

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

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

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

1) SI + <смещение, заданное в команде>;

2) DI + <смещение, заданное в команде>;

3) BP + <смещение, заданное в команде>;

4) + <смещение, заданное в команде>;

5) BP + SI + <смещение, заданное в команде> ;

6) BP + DI +<смещение, заданное в команде> ;

7) BX + SI + <смещение, заданное в команде>;

8) BX + DI + <смещение, заданное в команде>.

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

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

По указанному адресу из основной памяти считывается команда и пересылается в процессор. Код команды длиной от 1 до 8 байт поступает в очередь команд, откуда передается в устройство управления для дешифрации.

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

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

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

Затем процесс повторяется.

Флажковый регистр.На рисунке 6 представлен флажковый регистр Flags процессора i8086, в котором в виде однобитовых признаков по принципу ДА – НЕТ (ВКЛЮЧЕНО – ВЫКЛЮЧЕНО) фиксируется информация о результатах выполнения машинных команд, например арифметических.

Рисунок 6 – Флажковый регистр

Флаги флажкового регистра имеют следующее значение:

ОF – переполнение разрядной сетки;

DF – направление обработки строк: 0 – от младших адресов к старшим, 1 – от старших к младшим;

IF– разрешение прерывания;

ТF – разрешение трассировки при отладке процессора;

SF– признак знака: 1 – результат < 0, 0 – результат > 0

ZF – признак нуля: 1 – результат = 0

АF – признак наличия переноса из тетрады;

PF– признак четности младшего байта результата;

СF – признак переноса.

В последующем эта информация может использоваться, например, командами условной передачи управления.



<== предыдущая лекция | следующая лекция ==>
Архитектура «с общей шиной» | Программная модель процессора IA-32


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.004 сек.