Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1-50_1.docx
Скачиваний:
9
Добавлен:
02.08.2019
Размер:
707.62 Кб
Скачать
  1. Мп с точки зрения программиста, регистры общего назначения.

Начиная с 386 процессора , доступны 16 основных регистров,11 регистров для работы с сопроцессорами и мультимедиа ,и регистры управления.

Регистр-набор из n устройств способных хранить n-разрядное двоичное число.

Регистры общего назначения используются для временного хранения адресов данных команд 32-разрядные при работе с данными,10ти словами, 8- с байми. Имеются собственные имена. Ax-аккумулятор для хранения результата,Bx- регистр базы для сложной адресации операторов,Ex- счетчик (хранит кол-во повторений цикла) при работе со строками, Dx-регистр данных(хранит часть данных, если не умещается в Ax).

  1. Оперативная память, понятие исполняемого и физического адреса, сегментные регистры.

Оперативная память состоит из байтов, каждый байт из 8 инф. Битов 32-х разрядный процессор может обработать с ОП до 4 гб= адреса байтов меняются от 0 до 2^32-1.

Байты память и обьединяются в поля фиксированной и переменой длины.

Адрес поля-адрес младшего входящего в поле байта ожжет быть любым(кроме Ac-1)

Физический адрес(ФА)-записывается как сегмент, смещение, т.е по формуле ФА+АС+UA,где АС- адрес сегмента, UA- исполняемый адрес, те смещение формируется в команде в зависимоcти от способов адресации операндов.

Для реального режима АС определяется сегментным регистром и для получения 20-разрядного 2-ного адреса байта надо к содержимому сегментного регистра ,смещенного на 4 разряда влево, прибавить 16-разрядное смещение –UA.

Пример- ФА=(CS)+(IP);

(CS)=7A1516=0111101000010100002. (IP)=C7D916=1100011111011012

(ФА)=8692916=1000110100100101002

Процессор может работать с ОП как с сегментами памяти .Адрес любого байта при сегментировании состоит из адреса начала сегмента и адреса внутри. Для определения адреса начала сегмента используется сегментные регистры :DS,ES,FS,GS и SS –селекторы.(?).

ОС могут размещать сегменты в различных областях ОП и хранить временно на винчестере, если ОП не хватает.

В защищенном режиме сегментный регистр (селектор) свзяна с недоступным регистров(дескриптор),в котором хранится адрес начала сегмента его размер. В реальном режиме размер сегмента фиксирован(64 r,) при этом процессор может работать с 1 мб памяти ,поэтому адрес сегмента в 16-й СС кратен 16.

В защищенном режиме размер может достигать 64 мб(ГБ)? Хззз

DS определяет сегмент данных по умолчанию. Для этого существует сегмент регистра ES,FS,GS.

Регистр SS определяет начало сегмента стека. Сегментных регистров всего 6. В любой момент можно изменить содержимое регистра и т.о организовать работу со след. Участком памяти.

Сегмент стека используется особым образом. ОС автоматически записывает начало сегмента стека в регистр SS а указатель на вершину хранится в SP или ESP.

Стек организован так, что при добавлении в него элементов в стек ,значение указателя на вершину .т.е содержимое SP уменьшается т.е стек растет вниз(от максимального возможного значения начала его сегмента)

Чтобы стек можно было использовать для хранения фактических и локальных параметров,после передачи факт..параметров значение указателя на вершину стека можно сохранить в регистре BP и тогда к глобальным параметрам можно обращаться,используя конструкцию BP-к, а к локальным BP+n,где k и n –определяются кол-вом параметров и их длиной.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]