Адресное пространство процесса
32 bit
Регистры данных EAX, EBX, ECX, EDX
Индексные регистры ESI, EDI
Сегментные регистры ES, DS, CS, SS, FS, GS
Регистры-указатели EIP, EBP, ESP
Регистр флагов EFLAGS (Program Status Register)
Адреса (абсолютные):
EIP адрес текущей команды (EIP + PSR = PSW)
ESP адрес стека
EBP адрес данных
EAX/EBX/ECX/EDX адрес данных
Адресное пространство процесса
1. Код CS:IP
2. Данные DS:BP (ES:DX)
3. Управляющая информация
· Стек SS:SP – память для передачи параметров и т.п.
· Куча – область памяти, выделяемая динамически (malloc, переменные и т.п.).
Модели памяти:
1. Tiny – Все сегментные регистры имеют одно значение (один сегмент), используются только near адреса.
2. Small – Под каждый элемент программы не более одного сегмента. Сегментные регистры не меняются, но имеют разные значения. Внутри сегмента – near, между сегментами – far.
3. Compact - 1 сегмент кода, несколько сегментов данных (для данных – far, кода – near)
4. Medium - 1 сегмент данных, несколько сегментов кода (для кода – far, данных – near)
5. Large – несколько сегментов кода и несколько сегментов данных, но 1 статический элемент данных не более одного сегмента (не возможно выделить память больше 64Kb)
6. Huge – то же, но без ограничений
9. Основная память PC.
32 bit
2 GB – ОС
2 GB - приложения
16 bit
У процессора 20-ти разрядная шина, т.е. можно адресовать 220 байт=1Мб, но регистры процессора – 16 бит.
Для адресации 1Мб памяти используется следующая схема: используется номер сегмента и смещение – два 16-битовых числа.
3 типа адресации пространства микропроцессора:
доступно в реальном режиме
CMA - Conventional Memory Area
0-640K
Ядро ОС + приложения
UMA(B) – Upper Memory Area (Block)
расположена на контроллерах
640K-1M
Служебная область. Физические сегменты:
A, B – Video RAM (ROM)
C, D, E – на различные нужды*
F – ROM (BIOS)
HMA – High Memory Area
HMA - это часть XMA!
1M..1M+64K-16
Дополнительные драйверы
XMA – Extended Memory Area
1M…
Динамическая память для программ
*Сегменты C, D, E используются в качестве окна для EMS, Shadow-памяти (туда перегружаются программы из ПЗУ/BIOS) или используются некоторыми программами ОС.
Два стандарта использования XMA:
· XMS – Extended Memory Specification. Процессор на время обращения к расширенной памяти переводится в защищенный режим.
· EMS – Expanded Memory Specification. Отображение через сегменты C/D/E (окно до 64Kb) c помощью драйвера.
|