Общая структура кода команды МП 80386
масштаб SS=00 1 SS=01 2 SS=10 4 SS=11 8 Префиксы- модифицирует операцию следующей команды. Префикс операнда –переключает 16 или 32 битные операнды. Префикс размера адреса- переключает формирование 16 или 32 размеры адреса. Код операции- для новых команд 2байт, 1байт- 0Fh адрес новой команды. Значение служебных полей W,D,S см. i8086. Пост-байт – вместе с байтом SIBопределяют метод адресации. Байт SIB-байт масштабируемого индекса служит для представления сложных структур данных и имеет следующий формат: ss-index-BASE. Поле index- задает индексные регистры. Index Регистры 000 EAX 001 ECX 010 EDX 011 EBX 100 ---- 101 EBP 110 ESI 111 EDI
Mod Base операнд 00 000 DS:[EAX+S*I] 00 001 DS:[ECX+S*I] 00 010 DS:[EDX+S*I] 00 011 DS:[EBX+S*I] 00 100 DS:[ESP+S*I] 00 101 DS:[EBP+disp32+S*I] 00 110 DS:[ESI+S*I] 00 111 DS:[EAX+S*I+disp8] ----- ------ ---------- 10 000 DS:[EAX+S*I+disp32]
27. Методы адресации I80386: Поддерживается 11 основных режимов адресаций. Операнды 8,16,32 бита. Регистровая и непосре- дственная адресация в обычном варианте. Остальные в режиме адресации обеспечивают вычисление исполнительного адреса: EA= база +(индекс*масштаб)+смещение. СМЕЩЕНИЕ- 8 или 32 битное значение, задаваемое в команде. БАЗА-содержимое любого из регистров общего назначения. ИНДЕКС-содержимое любого из РОН, кроме р-ра ESP. МАСШТАБ- определяется значением специального байта, следящего за кодом операции SIB. Значение может быть равно 1,2,4,8. Использование масштаба позволяет сослаться в программе на элементы определенной длины.
32.Страничная организация памяти: Основное назначение- поддержка виртуальной памяти. Вся память делится на страницы размером 4Кб. Всего на адресное пространство имеем 1 Мб страниц.
Для отображения страницы в физическую используется таблица страниц, которая представляет собой массив дескрипторов страниц.Любой дескриптор имеет размер 4б и содержит информацию о номере физической страницы и ее параметров. Только часть виртуальных страниц находится в памяти, остальные на диске.
Вся таблица страниц делится на разделы по 1024 дескриптора. Один раздел занимает 1 физическую страницу. Всего мы имеем 1024 раздела. Для обращения к разделам строится каталог разделов, который так же занимает 1 стр. каталог разделов всегда находится системной памяти и адресуется CR3. Поле номера страницы линейного виртуального адреса делится на 2 поля по 10 разделов. Поле номера раздела, поле номера стр. в разделе. Поле номера раздела задает № физической страницы, в которой находится нужный раздел. Нужная страница загружается в память и оттуда выбирается № физической страницы из дескриптора,на которую указывает поле номера страницы линейного виртуального адреса.
34. Средства защиты по привелегиям: 1.Привилегированные команды – такие команды, которые модифицируют состояние флага IF, которые изменяют сегментацию или влияют на механизм защиты. Эти команды разрешимы только на уровне привилегий «0» - PL0. При попытке выполнить одну из этих программ в процедуре нижнего уровня генерируется нарушение общей защиты (прерывание с кодом 13) и О.С. прекращает выполнение программы. 2.Правило обращения к данным. Не разрешается использование данных с более высоким уровнем привилегий. 3.Правило передачи управления внешнему коду: не разрешается передавать управление с помощью команд call и jmp к коду, уровень привилегий которого не равен текущему. Замечание: из последнего правила есть исключения, необходимое для использования сервиса ОС.
|