Структура центрального процессора Intel 8086




Рассмотрим структуру центрального процессора Intel 8086 (1978 год).

Структуру центрального процессора Intel 8086 можно разделить на два логических блока (рис.3):

· блок исполнения (EU:Execution Unit);

· блок интерфейса шин (BIU:Bus Interface Unit).

В состав блока исполнения входят: арифметическо-логическое устройство ALU, устройство управления CU и десять регистров. Устройства блока исполнения обеспечивают обработку команд, выполнение арифметических и логических операций.

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

· управление обменом данными с блоком исполнения, памятью и внешними устройствами ввода/вывода;

· адресация памяти;

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

Рис. 1. Структура микропроцессора Intel 8086

Регистры – участки высокоскоростной памяти для хранения данных в процессоре, они непосредственно подключены к блоку управления и АЛУ, поэтому доступ из этих блоков к регистрам происходит значительно быстрее, чем доступ к внешней памяти.

Регистры процессора имеют различное назначение.

1. Регистры общего назначения – это 16-разрядные регистры АХ, ВХ, СХ, DX, каждый из которых состоит из двух 8-разрядных регистров, например, АХ состоит из АН (старшая часть) и AL (младшая часть).

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

· регистр АХ служит для временного хранения данных (регистр аккумулятор), часто используется при выполнении операций сложения, вычитания, сравнения и других арифметических и логических операций;

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

· регистр СХ иногда используется для временного хранения данных, но в основном служит счетчиком, в нем хранится число повторений одной команды или фрагмента программы;

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

 

2. Регистры указатели – это 16-разрядные регистры ВР (указатель базы), SI (индекс источника), DI (индекс результата), SP (указатель стека), IP (указатель команд).

Регистры SI, DI используются в цепочечных операциях и предназначены для хранения текущего адреса элемента в цепочке-источнике или цепочке-приемнике соответственно.

ПРИМЕР: Регистр SI - индекс отправителя (источника). Пусть есть блок данных в ОП из 10 байт. Нам надо эти данные просто прочитать. Для этого мы регистру BX присвоим адрес первого байта. Потом организуем цикл, в котором будем наращивать SI от 0 до 9. мы сможем последовательно получить адреса десяти байтов данных, формируя адрес как ВХ+SI. Регистр DI может быть использован аналогично, но обычно его используют для того, чтобы получить адрес ячейки памяти, в которую необходимо поместить данные.

Регистр SP определяет смещение текущей вершины стека, то есть содержит число, показывающее на сколько адресов (один адрес – это один байт или одна ячейка памяти) смещен последний помещенный в стек элемент от начала стека. Если стек пуст, то регистр SP содержит число, равное количеству байт, выделенных под стек, то есть значение регистра SP указывает на последний байт сегмента стека. При занесении элемента в стек процессор уменьшает значение регистра SP, а затем записывает элемент по адресу новой вершины. При извлечении элемента из стека процессор копирует элемент, расположенный по адресу вершины стека, а затем увеличивает значение регистра SP. Таким образом, стек растет в сторону уменьшения адресов. Изменение значения регистра SP происходит на величину 2, т.е. в стек записываются и из стека извлекаются 2 байта (16 бит). Указатель стека SP вместе с сегментным регистром стека SS используется для формирования физического адреса стека.

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

Регистр BP предназначен для организации произвольного доступа к данным внутри стека (и заполняется самим пользователем). Например, очень часто передача параметров из основной программы в подпрограмму организуется путем помещения передаваемых параметров в стек. Если в самой подпрограмме ведется активная работа со стеком, то можно сохранить указатель на вершину стека (значение регистра SP) в регистре BP, для того, чтобы в дальнейшем можно было обратиться к тому “кадру” стека, в котором содержались переданные через стек в подпрограмму параметры

 

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

3. Регистры сегментов (находятся в блоке интерфейса шин) –это 16-разрядные регистры, которые позволяют организовать память в виде совокупности четырех различных сегментов.

· CS – регистр программного сегмента (сегмента кода) определяет местоположение части памяти (адрес начала участка ОП, содержащего программу), содержащей программу, то есть выполняемые процессором команды;

· DS – регистр информационного сегмента (сегмента данных) идентифицирует часть памяти, предназначенной для хранения данных;

· SS – регистр стекового сегмента (сегмента стека) определяет часть памяти, используемой как системный стек;

· ES – регистр расширенного сегмента (дополнительного сегмента) указывает дополнительную область памяти, используемую для хранения данных. В ЕС можно записать адрес начала дополнительного сегмента данных

4. Регистр флагов – это 16-разрядный регистр, содержащий биты, определяющие код условия, установленный последней выполненной командой, или состояние микропроцессора. Эти биты называются флагами.

 

Номер бита Условное обозначение Назначение
  CF Признак переноса: этот флаг устанавливается в единицу, если имеет место перенос или заем из старшего бита результата, он полезен для произведения операций над числами длиной в несколько слов, которые сопряжены с переносами и заемами из слова в слово (слово – 2 байта)
  PF Признак четности: этот признак устанавливается в единицу, если результат имеет четное число единиц
  AF Признак дополнительного переноса: этот флаг устанавливается в единицу во время выполнения команд десятичного сложения и вычитания при возникновении переноса или заема между полубайтами
  ZF Признак нулевого результата: ZF=1, если результат равен нулю
  SF Признак знака: SF=1, когда старший бит результата равен единице. Иными словами, SF=0 для положительных чисел, и SF=1 для отрицательных чисел
  TF Признак трассировки: если TF=1, то процессор переходит в состояние прерывания INT 3 после выполнения каждой команды
  IF Признак разрешения прерывания: прерывания разрешены, если IF=1. Если IF=0, то распознаются лишь немаскированные прерывания
  DF Признак направления: устанавливается в единицу для автоматического декремента в командах обработки строк, и в ноль – для инкремента
  OF Признак переполнения: равен единице, если возникает арифметическое переполнение, то есть когда объем результата превышает размер ячейки назначения

Остальные биты (под номерами 15, 14, 13, 12, 5, 3, 1) - зарезервированные биты.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-04-12 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: