Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Регистр флагов FLAGS




Рис. 5.1. Регистры процессоров IA-32

В нижней части рис. 5.1. показаны еще два регистра — указатель команды, яв­ляющийся счетчиком команд и содержащий адрес следующей выполняемой ко­манды программы, и регистр состояния, в котором хранятся флаги кодов условий (CF, ZF, SF, OF). Флаги информируют о результатах арифметических операций. Биты режима выполнения программы (IOPL, IF, TF) связаны с операциями ввода-вывода и прерываниями, о которых рассказывается в разделе 6.

Регистры общего назначения процессоров семейства IA-32 совместимы с ре­гистрами ранних 8- и 16-разрядных процессоров Intel. В этих процессорах на ис­пользование разных регистров в программах накладывались некоторые ограни­чения. О соответствии регистров процессоров IA-32 регистрам более ранних процессоров можно судить по рис. 5.2. Восемь регистров общего назначения раз­делены на три группы: регистры данных для хранения операндов, регистры-ука­затели и индексные регистры для хранения адресов и индексов, посредством ко­торых определяется исполнительный адрес операнда в памяти.

 

Имя регистра общего назначения 31 16 15 8 7 0    
R0 EAX   AH AL Регистры данных
      AX  
R1 ECX   CH CL
      CX
R2 EDX   DH DL
      DX
R3 EBX   BH BL
      BX    
R4 ESP   SP Регистры-указатели
         
R5 EBP   BP
             
R6 ESI   SI Индексные регистры
         
R7 EDI   DI
             
  EIP   IP   Указатель команды
             
  EFLAGS   FLAGS   Регистр состояния

Рис. 5.2. Соответствие регистров IA-32 регистрам более ранних процессоров Intel

В первых, 8-разрядных, процессорах Intel регистры данных назывались А, В, С и D. В более поздних 16-разрядных процессорах их стали называть АХ, ВХ, СХ и DX. Старший и младший байты каждого регистра идентифицируются суффик­сами Н и L. Например, два байта в регистре АХ называются АН и AL. В процессо­рах IA-32 для идентификации соответствующих «расширенных» 32-разрядных регистров используется префикс E: ЕАХ, ЕВХ, ЕСХ и EDX. Этот же префикс употребляется и с другими 32-разрядными регистрами, показанными на рис. 5.2 (они являются расширенными версиями соответствующих 16-разрядных регист­ров, использовавшихся в более ранних процессорах).

Все перечисленные наименования регистров до сих пор применяются в техни­ческой документации Intel и других описаниях процессоров этой корпорации. Старые наименования регистров сохранены потому, что Intel поддерживает об­ратную совместимость для всех своих процессоров. Это означает, что при кор­ректной установке состояния процессора программы на машинном языке, соз­данные для ранних 16-разрядных процессоров, будут нормально работать на со­временных процессорах IA-32 без каких-либо изменений. В программах на языке ассемблера для 16-разрядных процессоров мы будем использовать в именах реги­стров префикс E, поскольку это мнемоническое обозначение применяется в теку­щих версиях ассемблера процессоров IA-32. Для однобайтовых операндов, храня­щихся в младших разрядах 32-разрядных регистров процессора, используются обозначения AL, BL и т. д. Для команд процессора IA-32 можно динамически ус­тановить 32- или 16-разрядный режим, для чего используется байт префикса ко­манды.


Поделиться:

Дата добавления: 2015-01-29; просмотров: 81; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты