КАТЕГОРИИ: Архитектура-(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; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |