Таненбаум Э.- Архитектура компьютера. стр.544

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

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

Каждый регистр общего назначения можно рассматривать либо как один 16-разрядный регистр, либо как пару 8-разрядных регистров. Таким образом, в процессоре 8088 предусмотрено восемь 8-разрядных регистров, применяемых

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

M0V АХ,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) представлены некоторые свойства регистров общего назначения.


⇐ Предыдущая страница| |Следующая страница ⇒