Читать «Assembler. Программирование на языке ассемблера IBM PC» онлайн - страница 5

Unknown Author

Все регистры имеют размер слова (16 разрядов), за каждым из них закреплено определенное имя (АХ, SP и т. п.). По назначению и способу использования регистры можно разбить на следующие группы: 1

1.2.1. Регистры общего назначения К этой группе относятся следующие 8 регистров:

Хотя названия многих из этих регистров малоосмысленны, все же приведем расшифровку этих названий:

АХ    accumulator, аккумулятор;

ВХ    base, база;

СХ    counter, счетчик;

DX    data, данные;

(буква X - от слова extended, расширенный: в процессоре 8080 были байтовые регистры А, В, С и D,. но затем их расширили до размера слова)

SI    source index, индекс источника;

DI    destination index, индекс приемника;

BP    base pointer, указатель базы;

SP    stack pointer, указатель стека.

Особенностью всех этих регистров является то, что их можно использовать в любых арифметических, логических и т. п. машинных операциях. Например, можно сложить число из регистра DI с числом из регистра SP или вычесть из содержимого регистра ВР содержимое регистра СХ.

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

В ПК используется так называемая модификация адресов. Если в команде операнд берется из памяти, тогда сослаться на него можно указав некоторый адрес и некоторый регистр. В этом случае команда будет работать с так называемым исполнительным адресом, который вычисляется как сумма адреса, указанного в команде, и текущего значения указанного регистра. Именно из ячейки с таким адресом команда и будет брать свой операнд. Выгода от такого способа задания операнда заключается в том, что, меняя значение регистра, можно заставить одну и ту же команду работать с разными ячейками памяти, что, например,

полезно при обработке массивов, когда одну и ту же команду надо применять к разным элементам массивов. Замена адреса, указанного в команде, на исполнительный адрес называется модификацией адреса, а используемый при этом регистр называется модификатором. Во многих ЭВМ в качестве модификатора можно использовать любой из имеющихся регистров, но вот в ПК модификаторами могут быть только регистры ВХ, BP, SI и DI. В этом и заключается основная специализация данных регистров. Отметим также, что в ПК модифицировать адрес можно не только по одному регистру, но и по двум сразу. Правда, в этом случае разрешено использовать не любую пару указанных модификаторов, а только такую, где один из регистров - это ВХ или ВР, а другой - это SI или DI. (Более подробно модификация адресов рассматривается в гл. 5.)