
- •Лекция 4.Структурная организация и режимы работы процессора ibm pc.
- •4.1. Структурная организация процессора.
- •4.2..Стадии (этапы) выполнения команды
- •4.3. Режимы работы процессоров Intelи сегментная организация памяти
- •4.4. Особенности реального режима
- •4.5. Особенности защищенного режима
- •4.6.Регистровая структура процессора реального режима
- •4.7. Формирование физического адреса в реальном режиме
4.6.Регистровая структура процессора реального режима
Регистры – это запоминающие схемы, состоящие из одинаковых элементов, каждый из которых хранит только один бит информации. Регистры расположены в процессоре. По назначению и использованию выделяют следующие группы регистров:
регистры общего назначения ( сокращенно - РОН).Всего 4 регистров с именами AX,BX,CX,DX,
указательные и индексные регистры SI,DI,BP,SP;
указатель команд – IP;
сегментные регистры – CS,DS,SS,ES;
регистр флагов – FLAGS.
Регистры общего назначения:
Регистр AX. Регистр AX является основным, применяется для многих арифметических операций и для всех операций ввода-вывода. Например, команды умножения, деления и сдвига обязательно используют регистр AX.
Регистр BX. Регистр BX является базовым регистром. Это единственный регистр общего назначения, который может использоваться в качестве "индекса" при адресации данных. Другое общее применение его – применение его хранение операндов арифметический операций.
Регистр CX. Используется для управления числом повторений циклов в командах организации циклов, т.е. может использоваться как счетчик циклов. Кроме того, регистр CX, как и регистры AX и BX, применяется в арифметических операциях. Он необходим и для операций сдвига влево или вправо.
Регистр DX. Регистр DX является регистром данных. Он применяется для некоторых операций ввода/вывода и тех операций умножения и деления над большими числами, которые используют регистровую пару DX и AX.
Любые регистры общего назначения могут использоваться для сложения и вычитания как 8-ми-, так и 16-тибитовых значений.
Регистровые указатели SP и BPобеспечивают системе доступ к данным в сегменте стека. Реже они используются для операций сложения и вычитания.
Регистр SP. Указатель стека обеспечивает использование стека в памяти, позволяет временно хранить адреса. Этот регистр связан с регистром SS для адресации стека. Изменение содержимогоSPпроисходит автоматически при исполнении специальных команд обращения к стеку.
Регистр BP. Указатель базы облегчает доступ к параметрам: данным и адресам, переданным через стек, но может использоваться и для обращения к данным в других сегментах. Изменение содержимого BP осуществляется программным путем.
Индексные регистры SI и DI нужны как для адресации данных, так и для использования как и регистров РОН..
Регистр SI. Используется как и регистр BX, для хранения указателей на сегменты с данными, в том числе, по умолчанию – на сегмент данных.
Регистр DI. Используется как и регистр SI.
Сегментные регистры:
Регистр CS. Регистр сегмента кода содержит начальный адрес сегмента кода. Этот адрес вместе с величиной смещения в командном указателе (IP) определяет адрес команды, которая должна быть выбрана для выполнения. Для обычных программ нет необходимости делать ссылки на регистр CS.
Регистр DS. Регистр сегмента данных содержит начальный адрес сегмента данных. Этот адрес вместе с величиной смещения в определенном сегменте, указывает на конкретную ячейку в сегменте данных.
Регистр SS. Регистр сегмента стека содержит начальный адрес сегмента стека.
Регистр ES.. Регистр сегмента дополнительных данных содержит начальный адрес сегмента дополнительных данных.
Указатель команд:
Регистр IP содержит смещение на команду, которая должна быть выполнена. Этот регистр программно недоступен, т.е. его имя в программах использоваться не может, но его содержимое может изменяться с помощью команд уловной и безусловной передачи управления.
В целом регистровая архитектура базового МП представлена программистской моделью МП на рисунке 4.6.
Регистр флагов:
В регистре используются 9 из 16 битов. Каждый из 9 флагов отражает одно из текущих состояний ЭВМ или один из признаков результата выполненной в МП операции. Флаг может принимать истинное (1) или ложное (0) значение. Арифметические команды и команды сравнения изменяют состояние большинство флагов.
Флаги процессора:
O (Переполнение) - Указывает на переполнение старшего бита при арифметических командах.
Рисунок
4.6.
D (Направление) - Обозначает левое или правое направление пересылки или сравнения строковых данных (данных в памяти превышающих длину одного слова).
I (Прерывание) - Указывает на возможность внешних прерываний (1-да, 0-нет).
T (Пошаговый режим) - Обеспечивает возможность работы процессора в пошаговом режиме.
S (Знак) - Содержит знак результата арифметической операции (0 - плюс,1 - минус).
Z (Ноль) - Показывает результат арифметической операции или операции сравнения (0 - ненулевой, 1 - нулевой результат).
A (Внутренний перенос) - Содержит перенос из 3-го бита для 8-битных данных, используется для специальных арифметических операций (1 - был произведен перенос из разряда 3 в 4 разряд и 0 - нет).
P (Контроль четности) - Показывает четность числа единиц в младшем 8-битовом коде (1 - четное и 0 - нечетное число).
C (Перенос) - Содержит перенос из старшего бита после арифметических операций, и последний бит при сдвигах (1 - был перенос и 0 – не было).
При программировании на ассемблере наиболее часто используются флаги O, S, Z, и C для арифметических операций и операций сравнения, а флаг D для обозначения направления в операциях над строками. Каждый флаг – это один из разрядов данного регистра (некоторые разряды регистров не заняты). Расположение флагов в регистре приведено на рисунке 475.