Смекни!
smekni.com

Центральный процессор персонального компьютера (стр. 2 из 4)

CF - при переносе «1» из старшего бита байта (слова) или при заеме единицы в старший бит;

PF - если в представлении результата операции содержится четное число единиц;

SF - при получении «1» в старшем бите результата;

ZF - если в результате выполнения операции получено нулевое значение.

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

Флаги DF, IF и TF используются для управления работой процессора. Флаг DF управляет направлением обработки данных в операциях с цепочками байтов или слов. При DF=1 цепочка обрабатывается снизу вверх, т. е. происходит автоматическое уменьшение (автодекремент) адреса текущего элемента цепочки. При DF=0 цепочка обрабатывается сверху вниз, т. е. происходит автоматическое увеличение (автоинкремент) адреса.

Флаг IF предназначается для разрешения или запрещения (маскирования) внешних прерываний. При IF = 0 внешние прерывания запрещены, т. е. процессор не реагирует на их запросы.

Флаг TF применяется для задания процессору пошагового режима, при котором процессор после выполнения каждой команды останавливается и ждет внешнего запуска. Пошаговый режим задается установкой флага TF= 1 и обычно необходим при отладке программ.

Основные операции по обработке данных выполняются в арифметико-логическом устройстве (АЛУ), с которым связана схема коррекции результатов (СКР), используемая при работе с данными, представленными в двоично-десятичных кодах. Связь внутренних узлов ЦП с шиной ША/Д осуществляется через буфер шины БШ, состоящий из двунаправленных усилителей с тремя устойчивыми выходными состояниями.

Усовершенствование архитектуры Intel 8086 связано также с введением в структуру микропроцессора специального сумматора (СМ) для вычисления адресов памяти.

Как отмечалось выше, разрядность адресов микропроцессора равна 20. Однако для упрощения операций хранения и пересылки адресной информации процессор манипулирует 16-разрядными логическими адресами, к которым относятся начальные (базовые) адреса сегментов памяти и значения смещений в этих сегментах. Логические адреса используются для вычисления 20-разрядных физических (абсолютных) адресов с помощью следующей процедуры. Содержимое каждого сегментного регистра рассматривается как 16 старших разрядов А19-А4 начального адреса соответствующего сегмента. Младшие разряды A3-А0 этого адреса всегда полагаются равными нулю и поэтому не запоминаются в регистрах, а приписываются справа к старшим разрядам во время операции вычисления физических адресов. Эта операция выполняется сумматором адреса, расположенным в блоке БСШ, и состоит в сложении 20-разрядного начального адреса сегмента с 16-разрядным смещением, которое дополняется четырьмя старшими разрядами А19-А16, равными нулю, как показано на рис. 1.3. Сумматор адресов осуществляет, например, следующие вычисления: CS + IP - при выборке очередной команды, SS + SP - при обращении к стеку, DS + SI и ES + DI - при обработке строк, DS + EA- при обращении к запоминающему устройству с произвольной выборкой (ЕА - исполнительный адрес, формирование которого описано ниже).

Рис. 1.3. Вычисление физического 20-разрядного адреса

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

На рис. 1.4 приведен пример размещения сегментов памяти.

Рис 1.4. Пример размещения сегментов в памяти

В несложных системах с емкостью памяти не более 64К байт можно отказаться от сегментации памяти и установить все сегментные регистры в нулевое состояние. При этом 16-разрядный адрес смещения будет фактически абсолютным адресом. При использовании системы с большой емкостью памяти (до 1М байт включительно) начальные адреса сегментов задаются исходя из особенностей структуры программного обеспечения и данных, хранимых в памяти.

2.ПРИНЦИП РАБОТЫ ЦЕНТРАЛЬНОГО ПРОЦЕССОРА

Рабочий цикл центрального процессора:

01. На буферный регистр адреса центрального процессора посылается содержимое счётчика адреса команд.

02. На буферный регистр адреса запоминающего устройства посылается содержимое буферного регистра адреса центрального процессора.

03. Из запоминающего устройства по адресу счётчика адреса команд происходит выборка адреса команды и передача на буферный регистр адреса запоминающего устройства.

04. На буферный регистр данных центрального процессора подаётся содержимое буфера регистра данных запоминающего устройства.

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

06. На буферный регистр адреса центрального процессора посылается первый адрес операнда команды.

07. На буферный регистр адреса запоминающего устройства посылается содержимое На буферный регистр адреса центрального процессора.

08. Из запоминающего устройства происход выборка данных по адресу первого операнда команды и передача его на буферный регистр адреса запоминающего устройства.

09. На буферный регистр данных центрального процессора подаётся содержимое буфера регистра данных запоминающего устройства.

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

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

12. На буферный регистр адреса запоминающего устройства посылается содержимое буферного регистра адреса центрального процессора.

13. Из запоминающего устройства происходит выборка данных по адресу второго операнда команды и передача его на буферный регистр адреса запоминающего устройства.

14. На буферный регистр данных центрального процессора подаётся содержимое буфера регистра данных запоминающего устройства.

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

16. Расшифровка кода операций и подача кода на схему выработки.

17. Выполнение операций в арифметико-логическом устройстве.

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

19. В запоминающие устройство по адресу второго операнда команды записывается содержимое буферного регистра данных запоминающего устройства.

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

22. Изменить счётчик адреса команд.

23. Возврат на первый шаг если не возникла команда "Конец работы".

Система команд процессора Intel 8086 насчитывает более 10 разнообразных форматов команд, отличающихся как длиной формата (машинная команда может занимать от 1 до 6 байт, не считая возможных предшествующих ей префиксов), так и распределением полей в отдельных байтах команды.

Используются 3 вида префиксов (префиксных байтов), которые предшествуют команде и определенным образом влияют на ее выполнение.

К префиксам относятся:

1) seg – префикс замены сегмента;

2) rep – префикс повторения;

3) lock – префикс блокировки шины.

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

Адрес переназначения сегмента занимает 2 средних бита в префиксном байте

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

Использование префикса rep позволяет организовывать цикл по последовательной обработке элементов строки на аппаратном, а не на программном уровне.

3) При выполнении команды с предшествующим ей префиксом lock на все время выполнения команды блокируется шина, связывающая процессор с памятью и портами ввода-вывода.

Действие любого префикса распространяется только на одну машинную команду, которая следует непосредственно за ним.

Форматы команд

1. Однобайтная безадресная команда:

ОрС

7 0

Рис. 2.1. Однобайтная одноадресная команда

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

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

К ним относятся:

MOVS – пересылка строки,

LODS – загрузка строки,

STOS – запись в память строки,

CMPS – сравнение строк,

SCAS – сканирование строки.

2. Однобайтная одноадресная команда

ОрС W REG

7 4 3 2 0

Рис.2.2 . Однобайтная одноадресная команда

Эта команда задает прямой адрес регистрового операнда (поле reg). Бит w задает длину операнда (1 – слово, 0 – байт).


3. Двухадресная команда с постбайтом адресации

Рис.2.3. Двухадресная команда с постбайтом адресации