
- •1. Регистровая модель мп i8086/88. Назначение регистров
- •3. Принцип адресации памяти мп i8086: размер адресного пространства, понятие сегмента,
- •2. Регистр флагов мп i8086/88. Назначение регистра, флаги состояние, флаги управления
- •4. Логические сегменты программы. Адресация сегментов
- •5. Сегмент стека. Адресация стека, команды работы со стеком, изменение состояния стека.
- •11. Внешние (аппаратные) прерывания.
- •6. Режимы адресации мп i8086.
- •7. Формат команды мп i8086.
- •8. Формат двухоперандной команды (см 7)
- •10. Механизм обработки прерываний в вычислительных системах на базе мп i8086.
- •12. Логическая структура контроллера прерываний.
- •13. Управление вводом-выводом.
- •1 2. Особенности программ в сом-формате. Структура, хранение на диске, загрузка в память, варианты завершения.
- •15. Особенности программ в ехе-формате. Структура, хранение на диске, загрузка в память,
- •16. Распределение адресного пространства (карта памяти)
- •17. Управление памятью в реальном режиме
- •13(Пример) Организация взаимодействия мп i8086 с клавиатурой.
- •19. Организация текстового видеобуфера. Пример работы с текстовым видеобуфером.
- •20, 21. Особенности мп i80386. Виды организации логического адресного пространства
- •22. Регистровая модель мп i80386
- •26. Общий формат селектора и дескриптора в архитектуре мп i80386.
- •24. Общая структура кода команды мп 80386
- •27. Таблица дескрипторов сегментов. Адресация таблиц. Поиск дескриптора в таблицах
- •23. Pегистp флaгoв мп 80386.
- •35. Поддержка многозадачности в арх. Ia32. Смена задачи.
- •37. Таблица дискрипторов прерываний а арх. Ia32. Обработка прерываний.
- •36. Виды прерываний и особых ситуаций в архитектуре ia 32.
- •39. Способы организации кэш-памяти.
- •1. Где может размещаться блок в кэш-памяти?
- •2. Как найти блок, находящийся в кэш-памяти?
- •3. Какой блок кэш-памяти должен быть замещен при промахе?
- •4. Что происходит во время записи?
- •40. Принцип конвейерной обработки.
- •41. Конфликты в конвейере команд.
- •42. Суперконвейерные и суперскалярные процессоры.
- •43. Организация внешней памяти. Raid-массивы
16. Распределение адресного пространства (карта памяти)
Для пользовательских программ выделяется память блоками
размером 0-FFFFh $ в области транзитных программ.
Учет свободной и занятой памяти ведется с помощью спец. блоков MCB (Memory Control Blocks)=16байт
Размещается непосредственно над тем блоком памяти, кот. он контролирует. MCB соединены в цепочку Формат: см. ↓
Адрес первого MCB хранится в области данных ОС и может
быть получен с помощью ф-ции 52h прерывания int 21h, в результате кот. в ES:BX система вернет полный логический
адрес списка сегментов. ПО смещению «-2» хранится адрес
первого MCB. При загрузке программы ей выделяется 2 блока:
под переменные окружения и под саму программу.
Формат MCB
Тип (1) |
Адрес владельца (2) |
Размер (2) |
Резерв(3) |
Имя прог-мы, если блок прог-мы(8) |
17. Управление памятью в реальном режиме
1) 48h – выделяет блок памяти
2) 49h освобождает блок памяти
3) 4Ah – изменяет размер блока памяти
Эти ф-ции могут быть использованы программой в след. случаях: 1) когда требуется выделить доп.
память под динамические данные 2) если требуется сократить размер выделенного блока до реального
размера программы, 3) если требуется освободить блок памяти либо от дочерней программы, либо
от самой себя (программа самовыгружается – для резидентных программ)
13(Пример) Организация взаимодействия мп i8086 с клавиатурой.
Контроллер клавиатуры распознает каждую нажатую клавишу и помещает ее в скэн-код или номер порта 60h. Любой клавише соответствует два скэн-кода: код нажатия и код отпускания(на 80h больше).
При нажатии клавиши вырабатывается сигнал аппаратного прерывания, по которому вызывается процедура int 09 – стандартного обработчика клавиатуры. Int09 считывает из порта 60h скэн-код нажатой клавиши и анализирует его значение. В соответствии с состоянием байта флагов вырабатывается соответствующий ASCII-код нажатой клавиши и помещается вместе со скэн-кодем в кольцевой буфер ввода. Буфер располагается в области данных BIOS, в ячейке 41Eh-43Ch адресуется двумя указателями. Адрес хвостового символа - первая свободная ячейка. Адрес головного символа- самый старый код помещает в буфер. При запросе прикладной программы из буфера считывается самый старый код, адрес головного символа увеличился на 2. при нажатии клавишей скэн-код и ASCII-код помещаются по адресу хвоста, при этом значение хвостового указателя увеличится на 2. если буфер пуст – оба указателя равны между собой, причем в начале работы они равны 1E. Буфер переполнен, когда адрес головы на 4 больше, чем адрес хвоста.