Ответы на билеты / Билет_20_
.docРегистры
Регистры делятся на пять категорий:
-
Регистры общего назначения (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.
Регистры общего назначения
Программы на языке ассемблера обращаются к регистрам, используя их символические имена— 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 сегмента. Для его изменения используются команды перехода.