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

Данная группа регистров являются основными рабочими регистрами ассемблерных программ. Их можно разделить на группы:

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

 

AX AH AL
     
BX BH BL
     
CX CH CL
     
DX DH DL
  15 8 7 0  
SI  
     
DI  
     
SP  
     
BP  
   
         

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

AX (AH/AL) – регистр-аккумулятор (Accumulator). Используется во всех операциях ввода-вывода, в некоторых операциях со строками и арифметических операциях. Некоторые команды (например, умножение и деление) предполагают обязательное использование данного регистра.

BX (BH/BL) – базовый регистр (Base register). Используется в индексной адресации, а также при вычислениях.

CX (CH/CL) – регистр-счётчик (Count register). Используется для управления числом повторений циклов и для операций сдвига влево и вправо. Может быть использован для вычислений.

DX (DH/DL) – регистр данных (Data register). Используется в некоторых операциях ввода-вывода, в операциях умножения и деления совместно с регистром ax.

· регистры индексов

SI – регистр индекса источника (Source Index). Обычно используется в паре ds:si для выполнения операций над строками и массивами.

DI – регистр индекса приёмника (Destination Index). Пара ds:di также используется в строковых операциях и содержит адрес в строке-приёмнике.

Оба индексных регистра можно применять для расширения индексной адресации и в операциях сложения и вычитания.

· регистры указателей стека

SP – регистр указателя стека (Stack Pointer). Регистр всегда показывает на вершину стека, т.е. на смещение последнего элемента в стеке, или в паре ss:sp – на адрес этого элемента.

BP – регистр указателя (Base Pointer). Предназначен для организации произвольного доступа к данным внутри стека. Может также применяться для расширения индексной адресации и в операциях сложения и вычитания