Учебники

Микропроцессор — 8086 функциональных блоков

Микропроцессор 8086 разделен на два функциональных блока: EU (исполнительный модуль) и BIU (шинный интерфейсный модуль).

ЕС (исполнительный блок)

Блок выполнения дает инструкции для BIU, в которых указывается, откуда следует извлечь данные, а затем декодировать и выполнять эти инструкции. Его функция заключается в управлении операциями с данными с использованием декодера команд и ALU. EU не имеет прямого соединения с системными шинами, как показано на рисунке выше, он выполняет операции над данными через BIU.

Давайте теперь обсудим функциональные части 8086 микропроцессоров.

ALU

Он обрабатывает все арифметические и логические операции, такие как операции +, -, ×, /, OR, AND, NOT.

Флаг Регистр

Это 16-битный регистр, который ведет себя как триггер, то есть он меняет свое состояние в соответствии с результатом, сохраненным в аккумуляторе. У этого есть 9 флагов, и они разделены на 2 группы — Условные Флаги и Контрольные Флаги.

Условные флаги

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

  • Флаг переноса — этот флаг указывает условие переполнения для арифметических операций.

  • Вспомогательный флаг — Когда операция выполняется в ALU, это приводит к переносу / кургану от нижнего полубайта (то есть D0 — D3) к верхнему полубайту (то есть D4 — D7), тогда этот флаг устанавливается, то есть перенос, данный битом D3 для D4 — флаг AF. Процессор использует этот флаг для выполнения двоичного преобразования в BCD.

  • Флаг четности — этот флаг используется для указания четности результата, т. Е. Когда младшие 8 битов результата содержат четное число единиц, устанавливается флаг четности. Для нечетного числа 1 флаг четности сбрасывается.

  • Флаг нуля — этот флаг равен 1, если результат арифметической или логической операции равен нулю, в противном случае он равен 0.

  • Флаг знака — этот флаг содержит знак результата, т. Е. Когда результат операции отрицательный, тогда флаг знака устанавливается в 1, а в 0.

  • Флаг переполнения — этот флаг представляет результат при превышении емкости системы.

Флаг переноса — этот флаг указывает условие переполнения для арифметических операций.

Вспомогательный флаг — Когда операция выполняется в ALU, это приводит к переносу / кургану от нижнего полубайта (то есть D0 — D3) к верхнему полубайту (то есть D4 — D7), тогда этот флаг устанавливается, то есть перенос, данный битом D3 для D4 — флаг AF. Процессор использует этот флаг для выполнения двоичного преобразования в BCD.

Флаг четности — этот флаг используется для указания четности результата, т. Е. Когда младшие 8 битов результата содержат четное число единиц, устанавливается флаг четности. Для нечетного числа 1 флаг четности сбрасывается.

Флаг нуля — этот флаг равен 1, если результат арифметической или логической операции равен нулю, в противном случае он равен 0.

Флаг знака — этот флаг содержит знак результата, т. Е. Когда результат операции отрицательный, тогда флаг знака устанавливается в 1, а в 0.

Флаг переполнения — этот флаг представляет результат при превышении емкости системы.

Контрольные Флаги

Флаги управления управляют операциями исполнительного блока. Ниже приведен список контрольных флагов —

  • Флаг прерывания — используется для одноэтапного управления и позволяет пользователю выполнять одну инструкцию за один раз для отладки. Если он установлен, то программа может быть запущена в одношаговом режиме.

  • Флаг прерывания — это флаг включения / отключения прерывания, то есть используемый для разрешения / запрета прерывания программы. Он установлен в 1 для состояния разрешения прерывания и в 0 для условия отключения прерывания.

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

Флаг прерывания — используется для одноэтапного управления и позволяет пользователю выполнять одну инструкцию за один раз для отладки. Если он установлен, то программа может быть запущена в одношаговом режиме.

Флаг прерывания — это флаг включения / отключения прерывания, то есть используемый для разрешения / запрета прерывания программы. Он установлен в 1 для состояния разрешения прерывания и в 0 для условия отключения прерывания.

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

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

Существует 8 регистров общего назначения: AH, AL, BH, BL, CH, CL, DH и DL. Эти регистры могут использоваться отдельно для хранения 8-битных данных и могут использоваться парами для хранения 16-битных данных. Допустимые регистровые пары: AH и AL, BH и BL, CH и CL, а также DH и DL. Это относится к AX, BX, CX и DX соответственно.

  • Регистр AX — Он также известен как регистр аккумулятора. Он используется для хранения операндов для арифметических операций.

  • Регистр BX — используется в качестве базового регистра. Он используется для хранения начального базового адреса области памяти в сегменте данных.

  • Регистр CX — он называется счетчиком. Он используется в инструкции цикла для хранения счетчика цикла.

  • Регистр DX — этот регистр используется для хранения адреса порта ввода / вывода для команды ввода / вывода.

Регистр AX — Он также известен как регистр аккумулятора. Он используется для хранения операндов для арифметических операций.

Регистр BX — используется в качестве базового регистра. Он используется для хранения начального базового адреса области памяти в сегменте данных.

Регистр CX — он называется счетчиком. Он используется в инструкции цикла для хранения счетчика цикла.

Регистр DX — этот регистр используется для хранения адреса порта ввода / вывода для команды ввода / вывода.

Регистр указателя стека

Это 16-битный регистр, который содержит адрес от начала сегмента до ячейки памяти, где слово было недавно сохранено в стеке.

BIU (блок шинного интерфейса)

BIU заботится обо всех передачах данных и адресов по шинам для ЕС, таких как отправка адресов, извлечение инструкций из памяти, чтение данных из портов и памяти, а также запись данных в порты и память. ЕС не имеет направления связи с системными автобусами, так что это возможно с BIU. ЕС и BIU связаны с внутренней шиной.

Он имеет следующие функциональные части —

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

Выборка следующей инструкции во время выполнения текущей инструкции называется конвейерной обработкой .

Сегментный регистр — BIU имеет 4 сегментных шины, то есть CS, DS, SS & ES. Он содержит адреса команд и данных в памяти, которые используются процессором для доступа к ячейкам памяти. Он также содержит 1 указатель регистра IP, который содержит адрес следующей инструкции, выполняемой ЕС.

CS — это означает сегмент кода. Он используется для адресации области памяти в сегменте кода памяти, где хранится исполняемая программа.

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

SS — это означает сегмент стека. Он обрабатывает память для хранения данных и адресов во время выполнения.

ES — Это означает дополнительный сегмент. ES — это дополнительный сегмент данных, который используется строкой для хранения дополнительных данных назначения.

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