Статус
нашего
сайта:
ICQ Secrets Center is Online  ICQ Information Center


ICQ SHOP
     5-значные
     6-значные
     7-значные
     8-значные
     9-значные
     Rippers List
ОПЛАТА
СТАТЬИ
СЕКРЕТЫ
HELP CENTER
OWNED LIST
РОЗЫСК!New!
ICQ РЕЛИЗЫ
Протоколы ICQ
LOL ;-)
Настройка компьютера
Аватарки
Смайлики
СОФТ
     Mail Checkers
     Bruteforces
     ICQTeam Soft
     8thWonder Soft
     Other Progs
     ICQ Patches
     Miranda ICQ
ФорумАрхив!
ВАШ АККАУНТ
ICQ LiveJournal

Реклама

Наш канал:

irc.icqinfo.ru

Таненбаум Э.- Архитектура компьютера. стр.293


Таненбаум Э.- Архитектура компьютера. стр.293

Таблица 5.7. 32-разрядные режимы адресации процессора Pentium 4 (М[х] — это слово в памяти с адресом х)

R/M

MOD

   
 

ООО

М[ЕАХ]

М[ЕАХ + смещение 8]

М[ЕАХ + смещение 32]

ЕАХ или AL

М[ЕСХ]

М[ЕСХ + смещение 8]

М[ЕСХ + смещение 32]

ЕСХ или CL

M[EDX]

M[EDX + смещение 8]

M[EDX + смещение 32]

EDX или DL

М[ЕВХ]

М[ЕВХ + смещение 8]

М[ЕВХ + смещение 32]

ЕВХ или BL

SIB

SIB со смещением 8

SIB со смещением 32

ESP или АН

Прямая адресация

М[ЕВР + смещение 8]

М[ЕВР + смещение 32]

ЕВР или СН

M[ESI]

M[ESI + смещение 8]

M[ESI + смещение 32]

ESI или DH

M[EDI]

M[EDI + смещение 8]

M[EDI + смещение 32]

EDI или ВН

Колонки 01 и 10 включают режимы адресации, при которых значение регистра прибавляется к 8- или 32-разрядному смещению, следующему за командой. Если выбрано 8-разрядное смещение, оно перед сложением получает 32-разрядное знаковое расширение. Например, команда ADD с полем R/M = 011, полем MOD = 01 и смещением, равным шести, вычисляет сумму регистра ЕВХ и 6, и в качестве одного из операндов считывает слово из полученного адреса памяти. Значение регистра ЕВХ не изменяется.

При MOD =11 предоставляется возможность выбора из двух регистров. Для команд со словами берется первый вариант, для команд с байтами — второй.

Отметим, что здесь не все регулярно. Например, нельзя выполнить косвенную адресацию через ЕВР или прибавить смещение к ESP.

Иногда вслед за байтом MODE следует дополнительный байт SIB (см. рис. 5.10). Байт SIB определяет масштабный коэффициент и два регистра. Когда присутствует байт SIB, адрес операнда вычисляется путем умножения индексного регистра на 1, 2, 4 или 8 (в зависимости от значения поля SCALE), прибавлением его к базовому регистру и, наконец, возможным прибавлением 8- или 32-разрядного смещения, в зависимости от значения поля MOD. Практически все регистры могут использоваться и в качестве индекса, и в качестве базы.

Режимы, получаемые посредством байта SIB, могут пригодиться для обращения к элементам массива. Рассмотрим следующую Java-команду:

for (i=0; i<n; i++) a[i]=0;

Здесь a — массив 4-байтных целых чисел, относящийся к текущей процедуре. Обычно регистр ЕВР используется для указания на базу стекового фрейма, который содержит локальные переменные и массивы, как показано на рис. 5.19. Компилятор должен хранить значение i в регистре ЕАХ. Для доступа к элементу a[i] он будет использовать режим с байтом SIB, в котором адрес операнда равен сумме значений 4 ЕАХ, ЕВР и 8. Эта операция может сохраняться в a[i] за одну команду.

Таненбаум Э.- Архитектура компьютера.

Рис. 5.19. Обращение к элементу массива а[\]

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

Мы представили несколько возможных компромиссов, с которыми постоянно сталкиваются разработчики. Обычно перед тем, как воплотить какую-либо идею в кремнии, выполняются многочисленные моделирующие прогоны, но для этого нужно иметь представление о том, как будет использоваться машина. Можно га рантировать, что разработчики машины 8088 тестировали ее без веб-браузера. Решения, принятые 20 лет назад, могут оказаться абсолютно неудачными с точки зрения современных приложений. В то же время, включив в машину какую-нибудь функцию, из-за требования обратной совместимости избавиться от нее будет уже невозможно.


⇐ Предыдущая страница| |Следующая страница ⇒

.