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

Регистры процессора 8086

На рис. 4.2 представлены регистры процессора 8086. Такие же самые регистры имеются во всех моделях процес­соров 80x86. (Процессоры 80386, 80486 и Pentium имеют дополнительные регистры и расширения, которые здесь рассматриваться не будут.) Если вы используете только регистры, содержащиеся на рис. 4.2, ваши программы обя­зательно будут исполняться на всех персональных компьютерах. Регистры делятся на пять категорий:

• Регистры общего назначения (ах, bx, ex, dx)

• Регистровые указатели и индексные регистры (sp, bp, si, di)

• Сегментные регистры (cs, ds, ss, qs)

• Регистр командного указателя (ip)

• Флаги (of, df, if, tf, sf, zf, af, pf, cf)

Все регистры 8086 являются 16-битовыми. Кроме того, четыре регистра общего назначения — ах, bx, ex, dx — разделены на старшую и младшую 8-битовые половины. Например, 16-битовый регистр ах состоит из двух 8-битовых частей — ah и al. Регистр bx разделен на bh и bl, сх — на ch и cl, dx — на dh и dl. Такая гибкая органи­зация позволяет вам оперировать либо всем 16-битовым регистром, либо работать отдельно с двумя 8-битовыми половинами регистра. Помните, что изменение значения в 16-битовом регистре ах приводит к изменению значений в его 8-битовых частях — al и ah. И наоборот, при изменении значения в cl изменяется величина сх.

Замечание

В данном тексте регистры записываются строчными буквами — cs, ax, si и т.д. В программах и других руководствах часто можно встретить регистры, написанные прописными буквами—АХ, BX, DH. Обе формы записи являются правильными.

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

Программы на языке ассемблера обращаются к регистрам, используя их символические имена— ах, cl, ds и подобные им. Но, кроме того, как показано справа на рис. 4.2, регистры имеют также и менее фамильярные назва­ния. (Хотя эти названия никогда не используются непосредственно в программах.) В регистре-сумматоре ах обыч­но содержат результаты сложения, вычитания и т.п. Базовый регистр bx часто указывает на начальный адрес (называемый базой) структуры в памяти. Счетчик сх определяет количество повторов некоторой операции. Ре­гистр данных dx чаще всего содержит данные, передаваемые для обработки в подпрограммы. Эти определения ни­коим образом не являются полными, и большую часть времени вы сами решаете, как использовать эти регистры общего назначения. Например, несмотря на то что сх назван регистром-счетчиком, ничто не мешает вам использо­вать для подсчета регистр bx. Однако в ряде случаев некоторые команды процессора 8086 требуют строго опреде­ленных регистров.

Регистровые указатели и индексные регистры

В отличие от четырех регистров общего назначения, другие регистры 8086 на рис. 4.2 тесно связаны с опреде­ленными операциями. Указатель стека sp всегда указывает на вершину стека процессора. (Детально стеки мы изу­чим немного позже.)

Указатель базы bр обычно адресует переменные, хранимые в стеке. Индекс источника si и индекс назначения di известны под названием строковых регистров. Обычно si и di служат для выполнения операций над байтовыми строками.

Замечание

Байтовые строки отличаются от символьных строк в языках высокого уровня. В языке ассемблера байтовая строка представ­ляет собой просто ряд последовательных байтов..