Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
140
Добавлен:
02.05.2014
Размер:
61 Кб
Скачать

Универсальные регистры

Наиболее часто программист оперирует регистрами общего назначения (РОН). К ним относятся регистры AX, BX, CX, DX, а в процессорах, начиная с Intel 80386 и выше – EAX, EBX, ECX, EDX. Регистры ЕхХ – 32-разрядные, хХ – 16-разрядные. Каждый из последних в свою очередь состоит из двух 8-битовых регистров xL и xH. Нижеприведенный рисунок иллюстрирует общую структуру РОН на примере регистра АХ.

A H

A L

AX

EAX

Рисунок 4.4. Общая структура РОН

Каждый из этих регистров может использоваться для временного хранения любых данных, при этом можно работать с каждым регистром целиком, а можно отдельно с каждой его половиной:

- регистры АН, ВН, СН, DH - старшие байты (Hight);

- регистры AL, BL, CL, DL - младшие байты (Low) соответствующих 2-ух байтовых регистров.

Регистры AL, АН образуют соответственно младший и старший байты условного регистра АХ.

Всеми этими регистрами можно пользоваться при программировании, но ряд команд использует их неявным способом. Например:

регистр АХ, аккумулятор, используется при умножении и делении слов, в операциях ввода-вывода и в некоторых операциях над строками;

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

регистр АН используется при умножении и делении байтов;

регистр ВХ, базовый регистр, часто используется при адресации данных в памяти; регистр СХ, счетчик, используется как счетчик числа повторений цикла и в качестве номера позиции элемента данных при операциях над строками. Регистр CL используется как счетчик при операциях сдвига и циклического сдвига на несколько битов;

регистр DX, регистр данных, используется при умножении и делении слов. Кроме этого используется в операциях ввода-вывода как номер порта.

Регистры смещений или иначе, указателей и индексов

Регистры указателей также, как и сегментные регистры, предназначены для хранения составных частей адресов.

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

Регистр SP хранит значение смещения, которое вместе с регистром SS указывает на текущее слово в стеке.

Регистр BP обрабатывает ссылочные параметры (данные и адреса), которые передаются между программой и подпрограммой (процедурой) через стек. Также, как и другие регистры указателей, ВР содержит смещение. Процессор сочетает это смещение с адресом в SS.

Регистры индексов SI и DI используются для индексированной адресации, а также в строковых операциях.

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

Для доступа к сегменту данных процессор извлекает номер блока из регистра DS, а смещение из регистра ВХ или индексного регистра - SI или DI.

Следует отметить, что регистр ВХ – единственный из РОН – можно использовать в качестве указателя (индекса) для расширения адресации. С это целью он может использоваться в сочетании с регистрами SI и DI.

Соседние файлы в папке Лекции по ассемблеру