Вопросы и задания для самоконтроля    
 СОДЕРЖАНИЕ
 Введение
 1. Развитие архитектуры
 2. Структура МП
 3. Ресурсы МП
 4. Управление памятью
 5. Защита
 6. Многозадачность
 7. Прерывания и исключения
 8. Инициализация МП
 9. Эмуляция 8086
 Глоссарий
 ПРАКТИКА
 1. Семантический разрыв
 2. CPUID
 3. Защищенный режим
 Вопросы и задания

Радиоэлектроника

iq.karelia.ru

Вопросы

  1. Сколько существует типов сегментов?
  2. Как формируется адрес в реальном режиме?
  3. Как формируется адрес в защищенном режиме (сегментная адресация)?
  4. Какой сегментный регистр по умолчанию используется при ссылках на данные, находящиеся в стеке?
  5. Максимальный размер сегмента? И в каком режиме?
  6. Где хранится селектор и что это такое?
  7. Для чего нужен бит пометки "страница находится в памяти"?
  8. Что представляет собой таблица векторов прерываний в реальном режиме?
  9. Что представляет собой таблица векторов прерываний в защищенном режиме? Как она называется?
  10. Для чего нужны GDT и LDT? Где хранятся указатели на их текущие значения?
  11. Когда используются таблицы GDT и LDT?
  12. Чем отличается маскируемое прерывание от немаскируемого? Это аппаратные или программные прерывания?
  13. Как и для чего используются привилегии в МП 80386?
  14. Как можно узнать процессору, где посмотреть информацию про сегмент, основываясь на информации из селектора?
  15. Размер операнда в реальном режиме?
  16. Размер дескриптора? А что описывает дескриптор?
  17. Размер страницы?
  18. Как вычисляется физический адрес при страничной сегментации?
  19. Как процессор узнает, как ему аппаратно вычислять физический адрес, используя сегментную адресацию или страничную?
  20. Регистры МП 80386?
  21. Для чего нужен регистр TR?

Задания


15

7
0
AH
AL
  AX
DH
DL
  DX
CH
CL
  CX
BH
BL
  BX
1111 1111 1111 1111
  BP
1010 1111 0110 1011
  SP
1101 0100 1110 0110
  SI
1110 1010 0100 1001
  DI
1011 0010 0000 1100
  CS
1111 0001 0111 0101
  SS
0011 0010 0001 1011
  DS
0111 0111 0110 0010
  ES
1100 0000 0010 0111
  IP
0000 0110 0000 0010
FLAGS
0000 0000 0000 0010
MSW


31

23

15

7
0
 
AH
AL
  EAX
 
DH
DL
  EDX
 
CH
CL
  ECX
 
BH
BL
  EBX
0001 1010 1000 0100 1000 1000 0010 0001
  EBP
0101 1111 0111 1110 0111 1100 1001 1001
  ESP
0110 0001 1101 0110 1010 0010 0011 0010
  ESI
0000 1100 0111 0100 0100 0111 1001 0000
  EDI
 
1001 1001 0100 1110
  CS
 
0110 1001 0000 1110
  SS
 
0011 1100 0110 0110
  DS
 
0001 0011 0001 0110
  ES
0000 0000 0000 0000 1100 0000 0010 0111
  EIP
0000 0000 0000 0000 0000 0110 0000 0010
EFLAGS
1000 0000 0000 0000 0000 0000 0000 0011
  CR0
  1. Проверь себя!0110 0011 1110 1111 0100 1000 1101 0110 - вектор некоторого прерывания в реальном режиме. Определите физический адрес точки входа обработчика прерываний.
  2. Проверь себя!Какое максимальное значение может быть загружено в сегментный регистр в реальном режиме, если вы собираетесь с его помощью адресовать вектор прерывания INT F8h ?
  3. Проверь себя!По таблице слева вычислите физический адрес очередной команды.
  4. Проверь себя!Команда MOVS загружает операнд, находящийся по адресу DS:SI в ячейку памяти ES:DI. По таблице слева вычислите для команды MOVS физический адрес операнда-приемника.
  5. Проверь себя!По таблице слева вычислите диапазон физических адресов, в котором перекрываются сегменты, адресуемые через ES и SS.
  6. В соответствии с таблицей слева, каков будет результат выполнения команды MOV AX,[BP] ?
  7. Проверь себя!В соответствии с таблицей справа вычислите смещение дескриптора сегмента данных от начала соответствующей дескрипторной таблицы для исполняемой в данный момент задачи.
  8. Какие из используемых текущей задачей дескрипторов в соответствии с правой таблицей хранятся в GDT?
  9. Проверь себя!В соответствии с правой таблицей какой уровень привилегий используется при доступе к данным?
  10. Проверь себя!Рассчитайте минимальный предел сегмента данных для случая в таблице справа такой, чтобы чтение 32-битного слова по адресу ES:EDI не вызвало бы особый случай процессора.