- •Билет №1 Структура эвм общего назначения. Алу, уу
- •Арифметико-логические устройства.
- •Устройства управления.
- •Описание сегментного механизма
- •Билет №2 Структура эвм общего назначения. Risc и cisc процессоры. Форматы машинных команд.
- •Risc и cisc процессоры.
- •Форматы машинных команд.
- •Описание страничного механизма.
- •Способы адресации.
- •Билет №3 Структура эвм общего назначения. Способы адресации. Стековая адресация. Виды стеков.
- •Стековая адресация. Виды стеков.
- •Особенности страничного механизма в Pentium и в р6.
- •Билет №4 Микропроцессор вм86. Назначение входов/выходов вм86 в минимальном/максимальном режиме.
- •Назначение входов/выходов вм86 в максимальном режиме.
- •Общие сведения о механизмах адресации в защищенном режиме.
- •Билет №5 Внутренняя архитектура мп вм86. Программная модель мп вм86.
- •Программная модель мп вм86.
- •Форматы системных таблиц защищенного режима. Системные таблицы
- •Билет №6 мп вм86. Сегментация памяти. Организация оперативной памяти.
- •Общие сведения о 32х разрядных процессорах фирмы Intel. Tss, ldt, gdt. Селектор,дескриптор. Билет №7 мп вм86. Организация адресного пространства портов ву.
- •Общие сведения о 32х разрядных процессорах фирмы Intel. Режимы работы, Режимы работы 32 разрядного процессора.
- •Билет №8 Программируемый адаптер к1810вв55 (i8255)
- •Битовая карта ввода вывода
- •Билет 9 Программируемый таймер к1810ви54 (i8254)
- •Механизм перехода в защищенном режиме
- •Билет №10 Общие сведения об обработке прерываний.
- •Формат машинной команды 32х разрядного процессора.
- •Билет №11 Система прерываний вм86.
- •Внутренняя кэш-память.
- •Билет №12 Контроллер прерываний к1810вн59 (i8259). Настройка вн59.
- •Сведения о внутренней организации 32-х разрядных процессорах, (состав, назначение).
- •Билет №13 Общие сведения о прямом доступе к памяти.
- •Буфер tlb. Кэш-память страниц.
- •Билет 14 Контроллер прямого доступа к памяти к1810вт37 (i8237).
- •Программирование кпдп вт37
- •Вопрос №2
- •Билет 15
- •1. Организация процессорного модуля вм86.
- •2.21 Организация процессорного модуля вм86.
- •Программная модель 32-разрядного мп.
- •Программная модель 32 разрядного мп
- •Билет 16 Слабосвязанная конфигурация.
- •2.23. Слабо связанные конфигурации.
- •Форматы таблиц gdt, ldt и idt.
- •3.4. Системные таблицы
- •Билет 17 Арбитр шин к1810вб89 (i8289).
- •2.24. Арбитр шин к1810вб89 (i8289).
- •Формат дескриптора.
- •3.15 Формат дескриптора.
- •Билет №18 Сильно связанные конфигурации на примере совместной работы мп86 и арифметического сопроцессора вм87.
- •Форматы элементов pte и pde.
- •3.8. Формат элемента pte (pde).
- •Билет №19 Формат машинных команд мп вм86.
- •Механизм переключения задач. Формат сегмента tss
- •Билет №20 мп вм86. Сегментация памяти. Организация оперативной памяти.
- •Сегментация памяти.
- •2.7 Организация оперативной памяти.
- •Общие сведения о кэш-памяти.
- •Внутренняя кэш-память
- •Сведения о кэшах в процессорах фирмы Intel.
Программная модель 32-разрядного мп.
Программная модель 32 разрядного мп
Под программной моделью, как и ранее, будем понимать набор внутренних регистров МП, программным образом доступных программисту. В данном разделе речь пойдет о регистрах с которыми работает рядовой пользователь. Кроме этих регистров в МП есть еще системные регистры, которые мы рассмотрим позже.
Собственно говоря программная модель 32 разрядного процессора, с точки зрения пользователя, практически не отличается от программной модели МП 8086. Единственное существенное отличие состоит в том, что регистры МП 386 и выше 32-х разрядные (в МП 8086 регистры 16-ти разрядные). Кроме того в регистр флагов ( ef ) добавлен ряд новых флагов Подробно формат регистра ef будет рассмотрен в конце этого раздела. Поскольку программная модель МП 8086 рассмотрена ранее, мы здесь ограничимся рисунком программной модели 32 разрядного процессора ( см. рис. 69) без какого-либо ее описания.
Пользователь должен знать, что ему доступны не все команды . Некоторые команды в защищенном режиме выполняются только на 0-м уровне привилегий. Такие команды называются привилегированными. К ним относятся: lldt; lgdt; lidt; ltr; clts; mov cr , r; mov r , cr; mov dr , r; mov r , dr; mov tr , r; mov r , tr (и ряд других). Кроме того некоторые команды выполняются только если CPL<=IOPL. Такие команды называются чувствительными к уровню привилегий. К ним (в защищенном режиме) относятся команды in; out; ins; outs; cli; sti.
Далее на рис. 70 приводится форма регистра флагов ef:
Большинство флагов хорошо известны еще из МП 8086. Часть флагов было описано ранее. Осталось всего три еще не упоминавшихся флага: RF, AC и ID. Эти три флага мы далее рассмотрим подробно, а остальные просто перечислим.
CF - флаг переноса (см. раздел 2.6).
PF - флаг четности (см. раздел 2.6).
AF - флаг межтетрадного переноса (см. раздел 2.6).
ZF - флаг нулевого результата (см. раздел 2.6).
-
31 16
15 8
7 0
eax
ah
al
ax
ecx
ch
cl
cx
edx
dh
dl
dx
ebx
bh
bl
bx
esp
sp
ebp
bp
esi
si
edi
di
ef
f
eip
ip
Видимые части →{
es
cs
ss
ds
fs
gs
Рис. 69
SF - флаг отрицательного результата (флаг знака) (см. раздел 2.6).
TF - флаг трассировки (флаг «пошагового» выполнения программы) (см. раздел 2.6).
IF - флаг разрешения внешних прерываний (см. раздел 2.2).
DF - флаг направления. Задает автоинкремент или автодекремент регистров в «строковых» командах (см. раздел 2.6).
OF - флаг переполнения разрядной сетки (см. раздел 2.5).
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
||||||
- |
nt |
iopl |
of |
df |
if |
tf |
sf |
zf |
- |
af |
- |
pf |
- |
cf |
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
31 |
|
|
|
|
|
|
|
22 21 |
20 |
19 |
18 |
17 |
16 |
||||||||
резерв |
id |
vip |
vif |
ac |
vm |
rf |
|||||||||||||||
Рис. 70
IOPL (input-output privilege level fild)- это не флаг а двух битовое поле, задающее уровень привилегий операций ввода-вывода (см. раздел 3.11).
NT (nested task)- флаг вложенной задачи ( проверяется командой iret ) (см. раздел 3.14).
VM (virtual mode)- режим V86 (см. раздел 3.10).
RF (resume) - флаг рестарта (возврата). Внутри МП есть системные регистры отладки DRi . В этих регистрах мы можем задавать «контрольные точки останова». Когда МП вырабатывает адрес, совпадающий с такой точкой происходит прерывание типа 1. Обычно обработчик этого прерывания выводит на экран содержимое внутренних регистров МП. При возврате из обработчика происходит рестарт команды (только если контрольная точка задана «по команде», см. описание регистров dr в разделе 3.18). Однако при этом МП снова выработает тот же адрес и, так как «контрольная точка» не изменилась, снова будет то же самое прерывание. Во избежание подобной ситуации обработчик прерывания по контрольной точке должен либо сменить адрес контрольной точки в регистре dr, либо установить RF в единицу. При RF = 1 прерывание при рестарте будет заблокировано. После выполнения «виноватой» команды МП сбрасывает RF в ноль.
AC (alignment check)- флаг выравнивания. Если этот флаг установлен МП генерирует прерывание типа 17 при обращении к не выровненным в памяти данным (например при обращению к слову по нечетному адресу). Правда это прерывание генерируется если кроме установки флага АС выполняются еще два условия: текущий CPL = 3 и бит АМ в регистре cr0 установлен в единицу. Этот флаг появился в МП 486.
VIF (virtual interrupt) – виртуальный флаг прерываний (см. раздел 3.11).
VIP (virtual interrupt pending) – виртуальный флаг отложенного прерывания (см. раздел 3.11).
ID (identification) – если программа может изменять значение этого флага, значит процессор поддерживает команду cpuid. Эта команда возвращает сведения о процессоре.
