Программно доступные регистры

Глава 12. Регистры

Типы регистров

Память в компьютере име­ет иерархическую структуру. Чем более высокое положение в иерархии за­нимает определенный блок памяти, тем выше его быстродействие, меньше объем и выше стоимость хранения в пересчете на 1 разряд (бит).

Набор регистров процессора – это память самого верхнего уровня иерархии подсистемы памяти компьютера.

По выполняемым функциям регистры процес­сора делятся на программно доступные регистры и регистры управления и состояния.

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

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

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

Программно доступные регистры

Программно доступные регистры, в свою очередь, можно разделить на несколько категорий:

• регистры общего назначения (или универсальные регистры);

• регистры данных;

• регистры адреса;

• регистры кодов условий.

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

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

Регистры данных разрешается ис­пользовать только для хранения операндов и результатов, но они не принимают уча­стия в вычислении исполнительного адреса. В некоторых архитектурах имеются отдельные регистры для хранения данных с фиксированной точкой и регистры для хранения данных с плавающей точкой.

Регистры адреса могут быть в опреде­ленной степени универсальными, а могут и предназначаться только для определен­ного режима адресации. Ниже приведены некоторые регистры адреса.

Сегментные регистры. В компьютерах с сегментной организацией оператив­ной памяти предназначены для хранения адреса сегмента.

Индексные регистры. Эти регистры используются в режимах адресации с индексацией, и в некоторых процессорах при обращении к ним автоматиче­ски выполняется приращение или уменьшение значения на 1 (происходит автоиндексация).

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: