Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Специальные поля




Флаги

Регистры индекса, указателя и базы.

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

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

Микропроцессор 80386 поддерживает четыре одновременно доступных участка кодов, называемые сегментами. Эти четыре сегмента адресуются как 16-разрядные регистры CS, DS, SS, ES, FS и GS.

Код выполняемой в данный момент программы, находящийся в памяти, адре­суется с помощью регистра CS (сегмента кода). База активного в данный момент сегмента данных адресуется с помощью регистра DS (сегмента данных). Стеки, ис­пользуемые обычно для промежуточных результатов и вызова подпрограмм, также адресуются с помощью собственного сегмента памяти. Адрес базы активного в дан­ный момент сегмента стека находится в регистре SS (сегмент стека). Кроме того, программист имеет доступ к трем активным в данный момент сегментам данных, называемым внешними и адресуемыми как регистры ES, FS и GS.

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

Действия со стеком осуществляются с помощью селектора сегмента стека (SS) и пары регистров указателя стека [(E)SP] и указателя базы [(Е)ВР]. Смещения в сегментах данных (DS) и (ES) берутся из регистра базы [(Е)ВХ]. Более сложные действия над данными могут быть достигнуты при использовании пары регистров индекса источника [(E)SI] и индекса приемника [(E)DI] вместе с активным в дан­ный момент сегментом данных.

Микропроцессор 80386 содержит регистр EFLAGS с 13 полями флагов. Шесть флагов называются флагами состояния, они изменяются и дают необходимую ин­формацию для управления арифметическими и логическими операциями. Флагами состояния являются: CF (флаг переноса), PF (флаг па­ритета), AF (вспомогательный флаг переноса), ZF (флаг нуля), SF (флаг знака), OF (флаг переполнения):

• флаг переноса (CF) устанавливается в единицу, когда при арифметической операции над 8- или 16-разрядным операндом происходит перенос или заем. В противном случае флаг сбрасывается в 0. Этот флаг используется также


. Регистры EFLAGS и EIP

при командах сдвига и циклического сдвига для значений разряда, "выходя­щего" из регистра;

• флаг паритета (PF) используется в основном при передаче данных. Он уста­навливается в единицу для нечетного паритета или сбрасывается в 0 для чет­ного;

• вспомогательный флаг переноса (AF) используется для двоично-десятич^ой арифметики. Он показывает, был ли перенос или заем в четырех младших цифрах двоично-десятичного числа;» флаг нуля (ZF) равен 1, когда арифметический результат равен нулю;

• флаг знака (SF) устанавливается в 1 при отрицательном арифметическом ре­зультате и сбрасывается в 0 при положительном результате;

• флаг переполнения (OF) показывает, был ли перенос старшего разряда ре­зультата без вырабатывания признака переноса соответствующего разряда.

 

Четыре из тринадцати флагов, называемые TF, IF, DF и VM, предназначены для прямых действий процессора. Например, установка флага ловушки (TF) пере­водит микропроцессор в одношаговый режим для отладки программ. Флаг разре­шения прерывания (IF), будучи установлен в 1, разрешает внешние прерывания и при сбросе в 0 запрещает их. Направление цепочки операций контролируется фла­гом направления (DF). Когда DF сброшен в 0, значение регистра [(E)SI] или [(E)DI] автоматически увеличивается, если же DF установлен в 1, то [(E)SI] и [(E)DI] автоматически уменьшаются. Когда установлен флаг виртуального режима (VM), микропроцессор 80386 переходит из защищенного режима в виртуальный режим микропроцессора 8086. Флаг VM может быть установлен командой IRET или переключениями задач во время работы в защищенном режиме.

Новые флаги IOPL, NT и RF используются микропроцессором только в защи­щенном режиме. Двухразрядный флаг уровня привилегии ввода-вывода (IOPL) служит для гарантии, что команда произведет только разрешенную операцию. Ко­манды POPF и IRET выполняются на нулевом уровне привилегии, и переключения задач изменяют установку флага IOPL.

Флаг вложенной задачи (NT) показывает, является ли выполнение текущей за­дачи вложенным в выполнение другой задачи. Если NT установлен в 1,, это пока­зывает, что текущая вложенная задача связана с предыдущей. Значение флага NT определяется управляющими передачами между точками задачи, прерываниями и ловушками. Флаг рестарта (RF) используется после ошибки при отладке, привед­шей к прекращению работы программы. Флаг RF очищается, когда ошибочная ко­манда "успешно" выполнена.

Указатель команды

Регистр указателя команды [(Е)1Р] содержит смещение, необходимое для ад­реса следующей команды внутри активного в данный момент сегмента кода. Это вырабатывает полный 32-разрядный указатель для следующей последовательной команды программы. Микропроцессор 80286 использует младшие 16 разрядов ре­гистра EIP, называемые IP, в качестве указателя команды

 

 




Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 313; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.04 сек.