Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры по архитектуре.docx
Скачиваний:
8
Добавлен:
16.04.2019
Размер:
258.32 Кб
Скачать

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

Процессор содержит двенадцать 16-разрядных программно - адресуемых регистров, которые принято объединять в три груп­пы: регистры данных, регистры-указатели и сегментные регис­тры. Кроме того, в состав процессора входят счетчик команд и регистр флагов. В группу регистров данных включаются регистры АХ, ВХ, СХ иDX. Программист может использовать их по своему ус­мотрению для временного хранения любых объектов (данных или адресов) и выполнения над ними требуемых операций. При этом регистры допускают независимое обращение к стар­шим (АН, ВН, СН иDH) и младшим (AL, BL, CL иDL) по­ловинам. Так команда movBL, AH пересылает старший байт регистра АХ в младший байт регистра ВХ, не затрагивая при этом вторых байтов этих регистров.

Заметьте, что сначала указывается операнд-приемник, а после запятой - операнд-источник. Во многих случаях регистры дан­ных вполне эквивалентны, однако предпочтительнее пользовать­ся регистром АХ, поскольку многие команды занимают в памя­ти меньше места и выполняются быстрее, если их операндом является регистр АХ (или его половиныAL или АН). С другой стороны, ряд команд использует определенные регистры неяв­ным образом. Так, все команды циклов используют регистр СХ в качестве счетчика числа повторений; в командах умножения и деления регистры АХ иDX выступают в качестве неявных операндов; операции ввода-вывода можно осуществлять только через регистр АХ (или AL) и т.д.

Регистры-указатели:Индексные регистрыSI (Индекс источника) иDI(индекс приемника) так же, как и регистры дан­ных, могут использоваться произвольным образом. Однако их основное назначение - хранить индексы (смещения) относитель­но некоторой базы (т.е. начала массива) при выборке операн­дов из памяти. Адрес базы при этом может находиться в базо­вых регистрах ВХ или ВР. Специально предусмотренные команды работы со строками используют регистры SI и DI в качестве неявных указателей в обрабатываемых строках.

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

Последний из группы регистров-указателей, указатель стека SP, стоит особняком от других в том отношении, что исполь­зуется исключительно как указатель вершины стека, обес­печивая выполнение стековых команд (PUSH, POP и др). Регистры SI, DI, ВР и SP, в отличие от регистров данных, не допускают побайтовую адресацию.

Сегментные регистры:Четыре сегментных регистраCS, DS, ES иSS являются важнейшим элементом архитектуры процессора, обеспечивая адресацию 20-разрядного адресного пространства с помощью 16-разрядных операндов.

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

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

Флаг паритета PF устанавливается в 1, если результат операции содержит четное число двоичных единиц.

Флаг вспомогательного переноса AF исполь­зуется в операциях над упакованными двоично-десятичными числами. Он индицирует перенос или заем из старшейтетрады (бита 3).

Флаг нуля ZF устанавливается в 1, если резуль­тат операции равен 0.

Флаг знака SF (SignFlag) показывает знак результата опе­рации, устанавливаясь в 1 при отрицательном результате.

Управляющий флаг трассировки (ловушки) TF используется для осуществления пошагового выполнения про­граммы.

Управляющий флаг разрешения прерываний IF разрешает (если равен 1) или запрещает (если равен 0) процессору реагировать на прерывания от внешних устройств.

Управляющий флаг направления DF исполь­зуется командами обработки строк.

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