Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АСВТ.docx
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
105.52 Кб
Скачать

Процессор Intel в реальном режиме.

КЭШ

ОЗУ(RAM)

HDD

Процессоры Intel x86 после включения питания оказывается в так называемом режиме реальной адресации памяти или просто реальном режиме. Большинство операционных систем сразу же переводит его в защищенный режим, который позволяет им обеспечивать многозадачность, распределение памяти и другие функции. Пользовательские программы в таких операционных системах часто работают в режиме V86(виртуальном), из которого им доступны те же самые функции, что и из реального режима, кроме команд, относящихся к управлению защищенным режимом. Следовательно, далее будем рассматривать реальный режим и режим V86, которые доступны программисту в большинстве случаев.

Регистры процессора

L3, L2, L1

Стоимость снизу вверх возрастает, скорость тоже, а объем уменьшается.

Регистры процессора.

Регистр процессора – это блок ячеек памяти, образующий сверхбыструю оперативную память внутри процессора. Используется самим процессором и большей частью ограничено-доступен программисту. Начиная с 386го процессора Intel для пользовательских программ доступно 16 основных регистров плюс еще 11 регистров для работы с мультимедийными приложениями и числами с плавающей запятой. Все команды, так или иначе, изменяют значение регистров и всегда быстрее, а зачастую и удобнее обращаться к регистру, чем к другой памяти.

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

Регистры общего назначения:

Существует 8 регистров общего назначения. Рассмотрим первые 4 из них.

  1. EAX – аккумулятор

  2. EBX – база

  3. ECX – счетчик

  4. EDX – данные

Они могут быть использованы без ограничений для любых целей: временного хранения данных, аргументов и результатов операций. Названия регистров происходят от того, что некоторые команды применяют их специальным образом. Например, аккумулятор часто необходим для хранения результата действий, регистр данных, в случае если результат не умещается в аккумулятор, получает старшую часть результата, регистр-счетчик работает как счетчик цикла и строковых операций, а регистр-база при так называемой адресации по базе. Младшие 16 бит каждого из этих регистров, кроме этого отдельные байты 16ти битных регистров AX-DX могут использоваться как 8ми битные регистры, остальные 4 регистра ESI(индекс источника), EDI (индекс приемника), EBP (указатель базы), ESP (указатель стека) имеют более конкретное назначение и применяются для хранения всевозможных временных переменных. Регистры ESI и EDI необходимы в строковых операциях при работе со стеком. Также как в случае с первыми регистрами EAX EDX младшие половины этих регистров называются SI, DI, BP, SP соответственно, и могут быть использованы отдельно.

Сегментные регистры.

При использовании сегментированных моделей памяти для формирования любого адреса нужны 2 числа: адрес начала сегмента и смещение искомого байта относительно начала этого сегмента. Операционные системы могут размещать сегменты, с которыми работает программа пользователя в разных местах памяти, соответственно сегменты способны оказаться где угодно. Поэтому программа, обращаясь к ним, применяет вместо настоящего адреса начала сегмента 16 битное число, называемое селектором. В процессорах Intel предусмотрено 6 16ти битных регистров: CS, DS, ES, FS, GS, SS, где хранятся селекторы. В любой момент времени можно изменить параметры, записанные в этих регистрах. В отличие от первых четырех сегментных регистров(DS-GS), регистры CS и SS отвечают за сегменты 2ух особенных типов. Сегмент кода и сегмент стека. Первые содержат программу, исполняющуюся в данный момент, следовательно, запись нового селектора в этот регистр приводит к тому, что далее исполняется не следующая по тексту программы команда, а команда из находящегося в другом сегменте с тем же смещением. А смещение очередной выполняемой команды всегда хранится в специальном регистре(EIP), запись в который также приведет к тому, что далее будет исполнена какая-нибудь другая команда. На самом деле все команды передачи управления (перехода, условного перехода, цикла, вызова подпрограммы и т.п.) осуществляют соответствующие записи CS и EIP.

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