Скачиваний:
28
Добавлен:
15.06.2014
Размер:
39.42 Кб
Скачать

Регистры

  • Регистры общего назначения (AX, BX, CX, DX)

  • Регистровые указатели и индексные регистры (SP, BP, SI, DI)

  • Сегментные регистры (CS, DS, SS, ES)

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

  • Флаги (OF, DF, IF, TF, SF, ZF, AF, PF, CF)

Все регистры 8086 являются 16-битовыми. Кроме того, четыре регистра общего назначения — AX, BX, CX, DX — разделены на старшую и младшую 8-битовые половины. Например, 16-битовый регистр AX состоит из двух 8-битовых частей — AH и AL. Регистр BX разделен на BH и BL, CX — на CH и CL, DX — на DH и DL. Такая гибкая органи­зация позволяет вам оперировать либо всем 16-битовым регистром, либо работать отдельно с двумя 8-битовыми половинами регистра.

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

Программы на языке ассемблера обращаются к регистрам, используя их символические имена— AX, CL, DS и подобные им. Но, кроме того, регистры имеют также и другие назва­ния. (Хотя эти названия никогда не используются непосредственно в программах.) В регистре-сумматоре AX обычно содержат результаты сложения, вычитания и т.п. Базовый регистр BX часто указывает на начальный адрес (называемый базой) структуры в памяти. Счетчик CX определяет количество повторов некоторой операции. Регистр данных DX чаще всего содержит данные, передаваемые для обработки в подпрограммы. Использовать их именно так не обязательно. Однако в ряде случаев некоторые команды процессора 8086 требуют строго определенных регистров.

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

Указатель стека SP всегда указывает на вершину стека процессора.

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

Сегментные регистры.

Четыре сегментных регистра — CS (code segment), DS (data segment), SS (stack segment), ES (extra segment) — определяют в памяти начала четырех 64 Кбайтовых сегментов.

Сегментные регистры являются строго специализированными. Вы не мо­жете выполнять над ними математические вычисления или хранить в них ре­зультаты других операции. Регистр сегмента кода CS указывает в памяти на начало машинного кода программы. Регистр сегмента данных DS содержит начальный адрес переменных программы. Регистр сегмента стека SS опреде­ляет начало стекового пространства. Дополнительный сегментный регистр ES является вспомогательным, и может упрощать некоторые опера­ции, связанные с сегментными регистрами.

Регистр командного указателя.

Специальный регистр командного указателя IP (instruction pointer) указывает на следующую исполняемую машинную команду от­носительно определенного в CS сегмента. Для его изменения используются команды перехода.

Флаги

Регистр флагов состоит из 16 бит, из них используются только 9 остальные 7 бит програм­мами не используются. Отдельные биты флагов представляются одиночными буквами o, d, i, t, s, z, a, p, с. В таблице содер­жатся полные имена для каждого битового флага.

Символ

Полное имя

0 или of

Флаг переполнения

d или df

Флаг направления

i или if

Флаг прерывания

t или tf

флаг трассировки

s или sf

Флаг знака

z или zf

Флаг нуля

а или af

Вспомогательный флаг

р или pf

Флаг четности

с или cf

Флаг переноса

В битах регистра флагов процессора 8086 отра­жаются результаты выполнения различных команд и операций. Например, после сложения флаг переноса cf показывает, полу­чился ли в результате перенос. Флаг переполнения указывает, может ли результат сложения чисел со знаком быть правильно представлен с помощью заданного количества битов. По мере изучения команд языка ассемблера вы также узнаете о той важ­ной роли, которую играют флаги в работе программ.

Соседние файлы в папке Ответы на билеты