![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
По сравнению с реальным режимом МП IA-16 в защищенном режиме МП IA-32 регистровый файл увеличился до 32 регистров. К шестнадцати регистрам пользователей добавились шестнадцать системных регистров.
Регистры пользователей:
· регистры общего назначения (РОНы): 8 тридцатидвухразрядных регистров,
· указатель команд1 тридцатидвухразрядный регистр,
· регистр состояния (флагов): 1 тридцатидвухразрядный регистр,
· сегментные регистры: 6 шестнадцатиразрядных регистров.
В состав системных регистров входят:
· регистры системных адресов: 4 регистра,
· регистры управления, отладки и тестирования: 16 регистров.
Регистры пользователей
Регистры общего назначения ( рис. 3.12).
Как и в МП IA-16, с точки зрения использования регистров, они не являются классическими регистрами общего назначения. Они могут задаваться по умолчанию (кодом операции, постбайтом и т.д.) По использованию регистров по умолчанию они делятся на две группы:
· регистры данных – eax, ecx, edx и ebx (по возрастанию адресов),
· регистры адресов – esp, ebp, esi и edi (по возрастанию адресов)
eax | Расширения | ah (4) | al (0) | ax | Аккумулятор | ||||||
ecx | (до 32 бит) | ch(5) | cl (1) | cx | Счетчик | ||||||
edx | Могут | dh (6) | dl (2) | dx | Данные | ||||||
ebx | использоваться | bh (7) | bl (3) | bx | База (для DS) | ||||||
esp | и | sp (4) | Указатель стека | ||||||||
ebp | в реальном | bp (5) | База кадра стека SS) | ||||||||
esi | si(6) | Индекс источника | |||||||||
edi | режиме | di(7) | Индекс приемника | ||||||||
Рис3.12 Регистры общего назначения (РОНы) | |||||||||||
Регистр ebx, хотя его и относят к группе регистров данных, но он же является одним из регистров адреса базы сегмента данных.
При работе с 16-битовыми операндами и компонентами адреса используются 16-битовые РОНы – ax, cx, dx, bx, sp, bp, si и di (по возрастанию адресов).
При работе с байтовыми операндами используются 8-битовые РОНы: al, cl, dl, bl, ah, ch, dh и bh (по возрастанию адресов).
В защищенном режиме по отношению к их содержимому (данные, компоненты адреса) регистры стали более симметричными.
Для улучшения симметричности в использовании РОНов в защищенном режиме работы предусмотрена возможность использования любых РОНов, кроме esp, в качестве хранения компонент адреса. Они могут участвовать в операциях и как регистры данных. Специализация регистров заключается в том, что при выполнении ряда команд используются один, два или три регистра, определенных по умолчанию.
Например, команды обработки строк по умолчанию используют содержимое регистров ecx, esi и edi. Это обеспечило некоторую оптимальность кодирования. Но нерегулярная структура РОНов требует от программистов осторожности при распределении и использовании РОНов.
На рис.3.12 РОНы в таблице представлены не в алфавитном порядке их обозначений, а по возрастанию их номеров.
Указатель команды (EIP)
Это 32-битный регистр (рис.3.13), который содержит адрес команды в кодовом сегменте (смещение в кодовом сегменте). После выборки очередной команды содержимое регистра увеличивается на количество байт в выбранной команде. Младшие 16 разрядов указателя команд (IP) используются в реальном (шестнадцатибитном) режиме работы МП.
Регистр состояния (EFLAGS)
Это 32-битный регистр (рис. 3.13), содержащий флаги, управляющие некоторыми операциями и отражающие состояние процессора. Все флаги регистра можно разбить на группы:
· флаги состояния,
· управляющие флаги,
· системные флаги.
EIP | Могут использоваться | IP | ||
Eflag s | и в реальном режиме | Fflags | ||
Рис 3.13. Указатель команд и регистр флагов |
Флаги состояния фиксируют признаки результатов выполнения арифметических и логических операций, включая операцию тестирования. Используются в командах условной передачи управления.
В эту группу флагов входят:
· OF – переполнение: равен единице, если результат превысил предел для чисел,
· SF–знак: равен единице, если результат отрицательный,
· ZF–нуль: равен единице, если результат равен нулю,
· AF–перенос (вспом.): равен единице, если имел место перенос из третьего бита (десятичный),
· PF–четность: равен единице, если младший байт содержит четное число единиц,
· CF–перенос: равен единице, если имел место перенос за пределы значащих цифр.
Управляющий флаг DF
Управляющий флаг DF определяет порядок выполнения операций со строками. Непосредственно управляет счетчиком. При DF=0 счетчик инкрементируется, иначе – декрементируется.
Дата публикования: 2014-11-03; Прочитано: 671 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!