<<
>>

Регистры общего назначения

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

Второй регистр этой группы, ВХ, называется базовым регистром. По назначению он во многом аналогичен регистру АХ, но есть и одно существенное отличие. В ВХ можно записать адрес памяти, а затем выполнить команду, операнд которой располагается по этому адресу памяти. Другими словами, ВХ может содержать указатель на область памяти, а АХ — не может. Чтобы проиллюстрировать это утверждение, сравним две команды. Первая команда:

ту ах , вх

Эта команда копирует содержимое ВХ в АХ. Вторая команда:

ту ах,(вх)

Эта команда копирует в АХ содержимое слова памяти, адрес которого содержится в ВХ.

В первом примере исходный операнд содержится в регистре ВХ; во втором примере фигурирует указатель на исходный операнд. В обоих примерах, как видите, для команды М0\/ заданы оба операнда: исходный (источник) и целевой (приемник). При этом целевой операнд указывается перед исходным.

Следующий регистр общего назначения, СХ, называется регистром-счетчиком. Помимо прочего, он применяется для хранения значений счетчиков при выполнении циклов. Во время обработки команды ШОР значение в этом регистре автоматически уменьшается на единицу. Как правило, циклы завершаются в тот момент, когда значение в регистре СХ достигает нуля.

Четвертым регистром в группе регистров общего назначения является регистр данных (ЭХ). Совместно с регистром АХ он задействуется при выполнении команд со словами двойной длины (32-разрядными).

В этом случае в ОХ сохраняются старшие 16 бит, а в АХ — младшие 16 бит. Здесь нужно оговориться, что обычно 32-разрядные целые числа называются длинными. Термин двойные чаще применяется по отношению к 64-разрядным значениям с плавающей точкой, но иногда так называют и 32-разрядные целочисленные значения. В нашем контексте путаницы не возникнет, так как числа с плавающей точкой мы обсуждать не собираемся.

Каждый регистр общего назначения можно рассматривать либо как один 16-разрядный регистр, либо как пару 8-разрядных регистров. Таким образом, в процессоре 8088 предусмотрено восемь 8-разрядных регистров, применяемых при выполнении команд с байтами и символами. Регистры, входящие во все остальные группы, нельзя разделить на две 8-разрядные части. Одни команды задействуют целый регистр (например, АХ), другие — только одну его часть (например, AL или АН). Согласно общему правилу, те команды, которые выполняют арифметические операции, обычно используют целые 16-разрядные регистры, а те, что имеют дело с символами, чаще всего довольствуются 8-разрядными регистрами. Следует иметь в виду, что AL и АН — не что иное, как имена двух половин регистра АХ. При записи в АХ нового 16-разрядного числа в AL и АН размещаются его нижняя и верхняя половины, соответственно. Взаимодействие регистров АХ, АН и AL можно проиллюстрировать следующей командой:

MOV АХ.258

Она загружает в регистр АХ десятичное значение 258. После завершения этой команды в байтовом регистре АН оказывается значение 1, а в байтовом регистре AL — значение 2. Пусть следом за этой командой следует другая:

ADDB AH.AL

В этом случае к значению байтового регистра АН прибавляется значение AL (то есть 2), и результирующее значение становится равным 3. В результате этой операции в регистр АХ записывается новое значение — 770, эквивалентное значению 00000011 00000010 в двоичной системе счисления или значению 0x03 0x02 в шестнадцатеричной системе счисления. Как правило, два регистра по 8 байт взаимозаменяемы. Исключение составляет лишь команда MULB, при выполнении которой один из операндов всегда сохраняется в регистре AL, который вместе с АН является в этом случае приемником. При выполнении команды DIVB в паре регистров АН и AL сохраняется делимое. Нижний байт регистра-счетчика CL применяется для хранения числа циклов при выполнении команд обычного и циклического сдвига.

Во втором примере из раздела «Примеры» (это пример относится к программе Gen Reg.s) представлены некоторые свойства регистров общего назначения.

<< | >>
Источник: Таненбаум Э.. Архитектура компьютера. 5-е изд. 2007

Еще по теме Регистры общего назначения:

  1. § 53 Завещание – односторонний акт воли. – Общие формы заве- щания. – Кодицилл. – Словесное завещание. – Привилегиро- ванные завещания. – Право делать завещание и лица к сему неспособные. – Право приобретать по завещанию. – Назначение наследника. – Отказы или легаты. – Условные назначения. – Субституция.
  2. § 5. Получение основного общего образования
  3. Статья 915. Перевозка транспортом общего пользования
  4. 2. Исправительная колония общего режима
  5. Раздел третий ПРАВОВАЯ СЕМЬЯ ОБЩЕГО ПРАВА
  6. 6. Воспитательные колонии общего и усиленного режимов
  7. 1. Формирование английского общего права
  8. Правило общего ответа
  9. Правило общего ответа
  10. Закон Общего и Частного
  11. 2. Правовой режим общего имущества товарищей
  12. 1. Географическое распространение английского общего права
  13. 4. Характерные черты английского общего права
  14. § 2. ПОИСК ОСОБЕННЫХ ФОРМ СУЩЕСТВОВАНИЯ ОБЩЕГО
  15. 2. Влияние английского общего права на индусское право
  16. § 4. ПРОГРЕШНОСГИ ПРОСТОГО И НЕПОСРЕДСТВЕННОГО ПРИЛОЖЕНИЯ ОБЩЕГО К ЧАСТНОМУ
  17. Сопоставление общего числа изданий и журналов