Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Периферийные устройства ПК / Тема 3 (Системные ресурсы ЭВМ).doc
Скачиваний:
41
Добавлен:
02.05.2014
Размер:
278.02 Кб
Скачать
  1. Внутренние ресурсы системы

Архитектура базовых микропроцессоров ix86 типична для IBMPCи совместимых компьютеров. 16-разрядные про­цессоры содержат регистр флагов состояния f, указатель адреса текущей командыIP, две группы 16-разрядных регистров. Вреги­страх общего назначения АХ, ВХ, СХ, DX, а также базовых и индексных регистрах ВР, SP, SI и DI хранятся операнды и результаты операций. Эти регистры используются для ускоренного выполнения отдельных специфических функций. Например, ре­гистр АХ рассматривается как аккумулятор (Accumulator), в кото­рый удобно помещать результаты арифметических операций. Регистр ВХ определяет начальный (базовый) адрес массива данных, СХ — как счетчик (Counter) в командах сдвига и циклах, а также с стоковых командах, a DX может содержать адрес порта ввода-вывода, старшие разряды входных арифметическихданных (Data) при умножении и делении и результаты некоторых операций.

В первых четырех регистрах можно отдельно обращаться к старшим (high) байтам АН, ВН, СН,DHи к младшим (low)AL,BL, CL, DL.

Стек – часть памяти, используемой для временного хранения данных и адресов.

  • SS:SP – указатель верхушки стека

  • SS:BP – указатель данных в стеке

Следующие четыре регистра используются для хранения адресов: SP (Stack Pointer) — указатель верхушки стека; ВР (Base Pointer) — базовый указатель при работе со стеком по косвенному адресу. SP уменьшается при засылке в стек (PUSH) и увеличивается при выемке из стека (POP), так как стек заполняется сверху от самых больших адресов к самым маленьким. SI (Source Index) и DI (Destination Index) — индексные регистры источника и приемника информации, используемые для определения базы и индекса при косвенной и индексной адресации. Последние регистры наиболее эффективны в командах строковых операций.

В 32-разрядных регистрах к имени регистра добавляется буква Е (Extended):EAX,ЕВХ, ЕСХ, EDX, EBP, ESP, ESI и EDI. Только регистр ESP не может использоваться ни как индексный, ни как базовый регистр.

Набор программно-доступных регистров

32

16

15 0

20h/0Eh

EIP

IP

Указатель команд

24h/10h

EFLAGS

FLAGS

Регистр флагов

28h/12h

EAX {0}

AH{4}AX{0}AL{0}

Аккумулятор

2Ch/14h

ECX {1}

CH{5}CX{1}CL{1}

Счетчик

30h/16h

EDX {2}

DH{6}DX{2}DL{2}

Регистр данных

34h/18h

EBX {3}

BH{7}BX{3}BL{3}

Указатель базы

38h/1Ah

ESP {4}

SP{4}

Указатель стека

3Ch/1Ch

EBP {5}

BP{5}

Базовый регистр

40h/1Eh

ESI {6}

SI{6}

Индекс источника

44h/29h

EDI {7}

DI{7}

Индекс приемника

48h/22h

0

ES{0}

Дополнительный сегмент

4Ch/24h

0

CS{1}

Сегмент кодов

50h/26h

0

SS{2}

Сегмент стека

54h/28h

0

DS{3}

Сегмент данных

58h

0

FS

Дополнительные сегменты данных

5Ch

0

GS

60h/2Ah

0

LDTR

Регистр локальной таблицы дескрипторов

64h

T 0

Двоичный блок

Карта разрешения ввода-вывода

Рис. 2.1. Общая структура регистров процессоров ix86

При выполнении машинной программы базовый процессор последовательно получает коды из ГП, пока не встретится команда передачи управления. Машинные коды команд считываются из сегмента кода, начальный адрес которого содержится в сегментном регистреCS. Регистр команд содержит команду во время ее дешифрации и выполнения. В регистреIPнаходится смещениеадреса следующей обрабатываемой команды относительно начала сегмента. При передаче управления в регистр IP помещается адрес из кода команды передачи управления.

EIP – содержит смещение (offset) следующей исполняемой инструкции относительно базы сегмента кода. При 16-битной адресации используется только IP.

При исполнении программы создаются как минимум 3 сегмента – данных, кода и стека. Базовый адрес каждого сегмента определяется соответствующими сегментными регистрами. Сегментация памяти позволяет указывать в командах не полный адрес, а только его часть – смещение данных в данном сегментном адресе относительно базы и индекса сегмента. Таким образом, адресное пространство процессора в реальном режиме представляется сегментами по 64 Кбайт. Доступ к байту или слову памяти возможен, если адресованный элемент находится в одном из сегментов, адресуемых сегментными регистрами.

Регистры сегментовсодержат 16-битные указатели (в реальном режиме) или селекторы дескрипторов (в защищенном) сегментов кода, стека и данных. Они используются для определения базового адреса каждого из сегментов. Их содержание не может быть изменено, они допускают лишь загрузку и хранение содержимого.

  • CS:IP – адрес текущей инструкции

Каждый байт сегмента адресуется 16 битами относительного адреса, который называется смещением (offset), а также имеетфизический и логический адреса.Начальный физический адрес сегмента определяется как сегментный адрес, умноженный на 16. Физический адрес байта в сегменте — это сумма начального физического адреса сегмента и смещения данного байта относительно начала сегмента.

Таким образом, физический адрес представляется 20-разрядным двоичным числом и используется для чтения информации из памяти и записи в память. (Иногда этот адрес называют эффективным или исполнительным). В машинной программе указывают не физические, а более короткие внутрисегментные части логиче­ских адресов. Логический адрес, состоит из указания на сегментный регистр и смещения (OFFSET) внутри сегмента.

Для вычисления физического адреса используются сегментные регистры кода CS (Code Segment), данных DS (Data Segment), дополнительный сегментный регистр данных или экстракодов ES (Extra Segment), стека SS (stack segment).

Логический адрес вычисляется по формуле [xS]*16+относшпельный адрес (offset).