Адресация в МП IntelРегистровая структура МП Intel 8086(2ч) — КиберПедия 

Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...

Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...

Адресация в МП IntelРегистровая структура МП Intel 8086(2ч)

2022-10-04 17
Адресация в МП IntelРегистровая структура МП Intel 8086(2ч) 0.00 из 5.00 0 оценок
Заказать работу

 

В защищённом режиме, в режиме реальных адресов и режиме совместимости доступны следующие регистры:

регистры общего назначения: 32-разрядные EAX, ЕВХ, ЕСХ, EDX, ESI, EDI, ESP, ЕВР; 16-разрядные AX, BX, CX, DX, SI, DI, SP, BP (они являются младшими частями 32-разрядных регистров); 8-битные регистры АН, ВН, CH, DH и AL, BL, CL, DL (старшие и младшие части 16-битных регистров соответственно);

32-разрядный EIP (IP в реальном режиме) - указатель инструкции;

16-разрядные сегментные регистры: CS, DS, SS, ES, FS, GS;

32-разрядный регистр флагов - EFLAGS;

80-битные регистры математического сопроцессора ST0-ST7 и др.;

64-битные ММХ-регистры - ММО - ММ7;

128-разрядные ХММ-регистры - ХММО - ХММ7 и 32-битный MXCSR;

32-разрядные регистры управления CR0 - CR4; регистры-указатели системных таблиц GDTR, LDTR, IDTR и регистр задачи TR;

32-разрядные регистры отладки - DR0 - DR3, DR6, DR7;

MSR-регистры.

В режиме реальных адресов доступны не все вышеуказанные регистры, но регистры управления доступны в любом случае. В режиме реальных адресов нельзя использовать некоторые регистры размером более 16 бит.

В режиме реальных адресов доступны не все вышеуказанные регистры, но регистры управления доступны в любом случае. В режиме реальных адресов нельзя использовать некоторые регистры размером более 16 бит.

При переключении процессора в 64-разрядный режим программе доступны следующие регистры:

регистры общего назначения: 64-разрядные RAX, RBX, RCX, RDX, RSI, RDI, RSP, RBP и R8, R9,..., R15; 32-разрядные EAX, ЕВХ, ЕСХ, EDX, ESI, EDI, ESP, EBP, R8D - R15D (являются младшими частями 64-разрядных регистров); 16-разрядные АХ, ВХ, СХ, DX, SI, DI, SP, BP, R8W - R15W (являются младшими частями 32-разрядных регистров); 8-битные регистры АН, ВН, CH, DH и AL, BL, CL, DL, SIL, DIL, SPL, BPL, R8L - R15L (старшие и младшие части 16-битных регистров соответственно);

64-разрядный RIP - указатель инструкции;

16-разрядные сегментные регистры: CS, DS, SS, ES, FS, GS;

64-разрядный регистр флагов - RFLAGS;

80-битные регистры математического сопроцессора ST0 - ST7;

64-битные MMX-регистры (ММО - ММ7);

128-разрядные ХММ-регистры - ХММО - ХММ15 и 32-битный MXCSR;

64-разрядные регистры управления CR0 - CR4 и CR8; регистры-указатели системных таблиц GDTR, LDTR, IDTR и регистр задачи TR;

64-разрядные регистры отладки - DR0 - DR3, DR6, DR7;

MSR-регистры.

Регистры сегментов напрямую участвуют в формировании адресов, каждый сегментный регистр указывает на свой сегмент памяти, а именно: CS - сегмент кода, DS - сегмент данных, SS - сегмент стека; остальные три регистра дополнительные и могут не использоваться программой. Свободная работа с ними не всегда возможна; например в защищённом и 64-разрядном режимах загружать в них можно лишь определённые значения. В защищённом и 64-разрядном режимах доступность регистров зависит уровня привилегий, на котором выполняется программа.

Регистр общего назначения ESP (RSP) всегда указывает на верхушку стека, но при этом нам ничто не мешает использовать его в других целях, хотя тогда будет потеряна возможность нормальной работы со стеком. Вообще все регистры общего назначения можно свободно использовать в своих целях, но следует помнить, что некоторые регистры используются некоторыми командами: например, ЕВР (RBP) обычно указывает на начало фрейма в стеке, где хранятся локальные данные подпрограмм.

Указатель инструкции EIP (RIP) напрямую использовать нельзя - данный регистр используется самим процессором.

Регистры STn, MMn, XMMn используются математическим сопроцессором при работе с числами с плавающей точкой.

Регистры CRn, DRn, регистры-указатели системных таблиц, MSR-регистры являются системными и управляются ключевыми механизмами работы процессора.

 

Память

Начнём с начала - с 70-х годов прошлого века. Тогда компьютер с памятью 64 Кб считался суперкомпьютером - если она была установлена, это было вообще чудо.

Для адресации такой памяти хватало 16 бит. После того как появились модули памяти 128 Кб и даже 256 Кб, регистров размером 16 бит стало не хватать для адресации памяти. Тогда ввели 16-битные сегментные регистры. Вся память делилась на сегменты размером 64 Кб. Сегмент задавался сегментным регистром, а адрес -обычным регистром или непосредственно 16-битным значением адреса. Но даже после этих новаций можно было адресовать только 1 Мб физической памяти из-за особенности формирования физического адреса и особенностей архитектуры процессора.

Всё кардинально изменилось, когда был выпущен первый полноценный 32-разрядный процессор (Intel 80386): он мог работать в двух режимах - в обычном 16-разрядном, как старые процессоры, и в защищённом, в котором можно было адресовать до 4 Гб физической памяти. На процессоре Intel 80386 появились новые 32-разрядные регистры, с помощью которых можно было адресовать эту память; также он поддерживал набор команд, позволяющий работать с данными размером 32 бита. Сегментные регистры остались, но они не слишком сильно влияли на формирование адреса, а предназначались для защиты определённых областей памяти, которые могла задавать операционная система; отсюда и название этого режима. Впрочем, для того чтобы получить доступ к 4 Гб памяти, необязательно надо было переходить в защищённый режим: такая возможность существовала и в режиме реальных адресов, но защищённый режим давал намного больше новых возможностей, чем просто расширение физического адресного пространства до 4 Гб.

После выпуска первых процессоров с поддержкой технологии AMD64 появился и 64-битный режим, который являлся вариантом защищённого режима, рассчитанным только на 64-битную архитектуру. В нём важность сегментных регистров была снижена до минимума, а защита данных операционной системы полностью возложена на механизм трансляции страниц.

 

В чем суть этого изложения краткой истории развития процессорной техники? Суть в том, чтобы показать, какие бывают адреса. Существует три вида адресов:

1.    Физический.

2.    Линейный (или виртуальный).

3.    Логический.

С первым пунктом всё понятно: физический адрес - это адрес в системной памяти компьютера, именно тот адрес, который выставляется на шину адреса. Самое сложное - это третий пункт. Но начнём по порядку.

Для того чтобы получить доступ к некоторому значению в памяти (в любом режиме), приложение должно указать сегмент и адрес в этом сегменте. Сегмент указывается в сегментном регистре или непосредственно значением (это значение может быть только 16-битным), а адрес - в обычном регистре или непосредственно значением (это значение может быть 16-, 32-, 64-битным в зависимости от режима). Приложение может указать адрес разными способами, а сегмент можно вовсе не указывать. Если он не указан, то значение сегмента берётся из соответствующего (код, данные или стек) сегментного регистра. Хотите вы этого или нет, адрес всегда будет в таком формате - «сегмент:смещение»; именно этот адрес и называется логическим.

После преобразования логического адреса (способ преобразования тоже зависит от режима процессора) получается абсолютный 20-, 32-, 64-битный адрес в зависимости от режима; этот адрес называется линейным. В режиме реальных адресов он сразу выставляется на шину адреса. В защищённом и 64-разрядном режимах этот адрес можно называть виртуальным, если активирован механизм трансляции страниц (подробнее об этом механизме будем говорить позже). Если механизм трансляции страниц не активирован, то линейный адрес становится физическим, т. е. без преобразования выставляется на шину адреса. Если же механизм трансляции страниц включён, то линейный (он же виртуальный) адрес специальным образом преобразуется в физический адрес; способ преобразования задаётся самой операционной системой.

 

 

Регистровая структура МП включает в себя 4 группы 16-разрядных регистров, которые обслуживают функционирование операционного устройства (ОУ) и шинного интерфейса (ШИ).

Рассмотрим подробнее группы регистров:


Поделиться с друзьями:

Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...

Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.009 с.