Микропроцессор - 8086 функциональных единиц

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

ЕС (исполнительная группа)

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

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

ALU

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

Флаг Регистр

Это 16-битный регистр, который ведет себя как триггер, т. Е. Меняет свой статус в соответствии с результатом, сохраненным в аккумуляторе. Он имеет 9 флагов, и они разделены на 2 группы - условные флаги и контрольные флаги.

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

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

  • Carry flag - Этот флаг указывает на состояние переполнения для арифметических операций.

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

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

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

  • Sign flag - Этот флаг содержит знак результата, т. Е. Когда результат операции отрицательный, тогда флаг знака устанавливается в 1, иначе устанавливается в 0.

  • Overflow flag - Этот флаг представляет результат, когда емкость системы превышена.

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

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

  • Trap flag- Он используется для пошагового управления и позволяет пользователю выполнять одну инструкцию за раз для отладки. Если он установлен, то программа может работать в пошаговом режиме.

  • Interrupt flag- Это флаг разрешения / запрета прерывания, т.е. используется для разрешения / запрещения прерывания программы. Он установлен в 1 для состояния разрешения прерывания и установлен в 0 для состояния отключения прерывания.

  • Direction flag- Используется в строковой операции. Как следует из названия, когда он установлен, доступ к байтам строки осуществляется с более высокого адреса памяти на более низкий адрес памяти и наоборот.

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

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

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

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

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

  • DX register - Этот регистр используется для хранения адреса порта ввода / вывода для инструкции ввода / вывода.

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

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

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

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

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

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

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

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

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

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

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

    • ES- Это расшифровывается как Extra Segment. ES - это дополнительный сегмент данных, который используется строкой для хранения дополнительных данных назначения.

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