Основы микропроцессорной техники

Раздел 3. Функционирование процессора


«Структура курса | Глава 1 | Глава 2 | Глава 3 | Глава 4 | Глава 5 | Глава 6 | Раздел 7 | Глава 8 | Дополнения

Раздел 3 - Страницы: « | 1 | 2 | 3 | 4 | 5 | »

3.2. Регистры процессора

Как уже упоминалось, внутренние регистры процессора представляют собой сверхоперативно память небольшого размера, предназначенная для временного хранения служебной информации или данных. Количество регистров в разных процессорах может быть от 6-8 до нескольких десятков. Регистры могут быть универсальными и специализированными. Специализированные регистры, присутствующие в большинстве процессоров, - это регистр-счетчик команд, регистр состояния (PSW), регистр указателя стека. Другие регистры процессора могут быть как универсальными, так и специализированными.

Например, в 16-разрядном процессоре Т-11 фирмы DEC было 8 регистров общего назначения (РЗП) и один регистр состояния. Все регистры имели по 16 разрядов. С регистров общего назначения один выделялся под счетчик команд, другой - под показатель стека. Все остальные регистры общего назначения вполне взаимозаменяемы, то есть имеют универсальное назначение, могут хранить как данные, так и адреса (указатели), индексы и т.д. Максимально допустимый объем памяти для данного процессора составлял 64 Кбайт (адресов памяти 16-разрядный).

В 16-разрядном процессоре MC68000 фирмы Motorola было 19 регистров: 16-разрядный регистр состояния, 32-разрядный регистр счетчика команд, 9 регистров адреса (32-разрядных) и 8 регистров данных (32-разрядных. Два регистры адреса отведены под показатели стека. Максимально допустимый объем адресованной памяти - 16 Мбайт (внешняя шина адреса 24-разрядная). Все 8 регистров данных взаимозаменяемы. 7 регистров адреса - тоже взаимозаменяемы.

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

Процессор 8086 имеет 14 регистров разрядностью по 16 бит. Из них четыре регистры (AX, BX, CX, DX) - это регистры данных, каждый из которых помимо сохранения операндов и результатов операций имеет еще и свое специфическое назначение:

  • регистр АХ - умножение, деление, обмен с устройствами ввода / вывода (команды ввода и вывода.
  • регистр ВХ - базовый регистр в вычислениях адреса;
  • регистр СХ - счетчик циклов;
  • регистр DX - определение адреса ввода / вывода.

Для регистров данных существует возможность раздельного использования обоих байтов (например, для регистра АХ они имеют обозначение AL - младший байт и AH - старший байт).

Следующие четыре внутренних регистры процессора - это сегментные регистры, каждый из которых определяет положение одного из рабочих сегментов (Рис. 3.10):

  • регистр CS (Code Segment) соответствует сегменту команд, выполняемых в данный момент;
  • регистр DS (Data Segment) соответствует сегменту данных, с которыми работает процессор;
  • регистр ES (Extra Segment) соответствует дополнительному сегмента данных;
  • регистр SS (Stack Segment) соответствует сегменту стека.


Рис. 3.10. Сегменты команд, данных и стека в памяти.

В принципе, все эти сегменты могут и перекрываться для оптимального использования пространства памяти. Например, если программа занимает только часть сегмента, то сегмент данных может начинаться сразу после завершения работы программы (с точностью 16 байт), а не после окончания всего сегмента программы.

Следующие пять регистров процессора (SP - Stack Pointer, BP - Base Pointer, SI - Source Index, DI - Destination Index, IP-Instruction Pointer) служат показателями (т.е. определяют смещение в пределах сегмента). Например, счетчик команд процессора образуется парой регистров CS и IP, а указатель стека - парой регистров SP и SS. Регистры SI, DI используются в линийкових операциях, то есть при последовательной обработке нескольких ячеек памяти одной командой.

Последний регистр FLAGS - это регистр состояния процессора (PSW). С его 16 разрядов используются только девять (Рис. 3.11): CF (Carry Flag) - флаг переноса при арифметических операциях, PF (Parity Flag) - флаг четности результата, AF (Auxiliary Flag) - флаг дополнительного переноса, ZF (Zero Flag) - флаг нулевого результата, SF (Sign Flag) - флаг знака (совпадает со старшим битом результата), TF (Trap Flag) - флаг пошагового режима (используется при отладке), IF (Interrupt-enable Flag) - флаг разрешения аппаратных прерываний , DF (Direction Flag) - флаг направлении при линийкових операциях, OF (Overflow Flag) - флаг переполнения.


Рис. 3.11 Регистр состояния процессора 8086.

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

Во многих процессорах выделяется специальный регистр, называемый аккумулятором (т.е. накопителем). При этом, как правило, только этот регистр-аккумулятор может участвовать во всех операциях, только через него может происходить взаимодействие с устройствами ввода / вывода. Иногда в нем же содержится результат любой выполненной команды (в этом случае говорят даже о "аккумуляторную" архитектуру процессора. Например, в процессоре 8086 регистр данных АХ можно считать своеобразным аккумулятором, потому что именно он обязательно участвует в командах умножения и деления, а также только через него можно пересылать данные в устройства ввода / вывода и из них. Выделение специального регистра-аккумулятора упрощает структуру процессора и ускор ет загрузку кодов внутри процессора, но в некоторых случаях замедляет работу системы в целом, потому что весь поток информации должен пройти через один регистр-аккумулятор. В случае, когда несколько регистров процессора вполне взаимозаменяемы, таких проблем не возникает.


«Структура курса Раздел 3 - Страницы: « | 1 | 2 | 3 | 4 | 5 | »