Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
FoxPro / Методички_по_БД / ОрганизациЭВМ и систем_Учеб_пособие.doc
Скачиваний:
150
Добавлен:
11.05.2015
Размер:
2.4 Mб
Скачать

Способы адресации

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

Базовый адрес определяется содержимым 16-разрядного сегментного регистра и зависит от режима работы процессора. Если он работает в режиме обработки 16-разрядных данных (режим реальных адресов), то 20-разрядный базовый адрес формируется путем сдвига содержимого сегментного регистра на 4 разряда влево. Если процессор работает в режиме обработки 32-разрядных данных (защищенный режим), то 32-разрядный базовый адрес содержится в дескрипторе, выбор которого из таблицы дескрипторов осуществляется с помощью селектора — содержимого соответствующего сегментного регистра.

В качестве относительного адреса используется содержимое регистров общего назначения или эффективный адрес (ЕА), который формируется в соответствии с заданным способом адресации. ЕА является 16- или 32- разрядным и формируется в зависимости от значения полей MOD и R/M и содержимого байта SIB (для 32-разрядных адресов). В общем случае ЕА образуется путем арифметического сложения трех компонентов:

– содержимого базового регистра;

– содержимого индексного регистра;

– 8, 16, 32-разрядного смещения, заданного в одном, двух или четырех байтах команды.

В зависимости от значений полей MOD и R/M для формирования ЕА используются все или часть этих слагаемых.

В процессоре осуществляются следующие способы адресации операндов:

  • непосредственная адресация;

  • регистровая адресация;

  • косвенно-регистровая адресация;

  • прямая адресация;

  • базовая адресация;

  • индексная адресация;

  • базово-индексная адресация;

  • базово-индексная адресация со смещением.

2.5.2. Форматы команд и способы адресации в risc-процессорах

Рассмотрим архитектурные особенности на примере процессора R3000. Этот процессор строится на основе СБИС 32-разрядного центрального процессора, арифметического сопроцессора и буфера записи.

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

Все команды имеют длину 32 бита и могут быть трех форматов:

I – команды с непосредственным операндом и обращения к памяти

КОП (6); RS (5); Rt (5); I (16),

где RS, Rt– номера регистров, I – непосредственный операнд или смещение;

J – для команд переходов;

КОП (6); АДРЕС ПЕРЕХОДА (26);

R – для операционных команд;

КОП (6); RS (5); Rt (5); Rd (5); Rl (5); FUNC (6).

Операционные команды служат для выполнения арифметических, логических операций и сдвигов. Операционные команды используют как R-формат (команды типа регистр-регистр), так и I-формат (команды регистр – непосредственный операнд). Предусмотрены 8 команд целочисленного умножения и деления.

Команды загрузки/запоминания обеспечивают обмен данными между регистрами общего назначения и памятью. Адреса памяти формируются с использованием базового регистра и 16-разрядного смещения (I-формат).

Безусловные переходы выполняются либо по косвенному адресу (R-формат), либо по прямому адресу (J-формат). В последнем случае старшие биты адреса переходов добавляются из счетчика команд.

Команды управления системой обеспечивают работу с виртуальной памятью.

Команды работы с сопроцессором являются дополнительными, их форматы и состав зависят от типа используемого сопроцессора.

Соседние файлы в папке Методички_по_БД