Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
54
Добавлен:
21.05.2015
Размер:
83.97 Кб
Скачать

5.1.6.3. Методы адресации UltraSparc II

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

К памяти обращаются команды трех типов: загрузка (LOAD), сохранение (STORE) и одна команда синхронизации мультипроцессора. Для команд LOAD и STORE есть два способа обращения к памяти. При первом способе вычисляется сумма двух регистров, которая затем используется как адрес (можно считать это относительной индексной адресацией без смещения). Второй способ представляет собой индексный метод с 13-бит­ным смещением со знаком.

5.1.6.4. Методы адресации jvm

У машины JVM нет общих методов адресации в обычном смысле. Коман­ды не содержат поля, сообщающего способ вычисления адреса. Вместо этого здесь с каждой командой связан собственный метод адресации. Поскольку в JVM нет видимых регистров, то регистровая и косвенно-регистровая адресация здесь невозможна. Несколько команд, напри­мер BIPUSH, используют непосредственную адресацию. Единственный метод адресации через регистры - индексный. Он используется командами LOAD, ISTORE, LDCW и другими командами, которые неявно определяют переменную через регистр, обычно LV или СРР. Команды перехода тоже используют индексную адресацию, при этом в качестве регистра рассматривается PC.

5.1.7. Типы команд

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

5.1.7.1. Команды перемещения данных

Эти команды правильнее было бы назвать дублированием данных, но термин “перемещение данных” уже устоялся. Копирование данных из одного места в другое является одной из самых распространенных операций в программах.

Есть две цели, ради которых данные могут копироваться из одного места в другое. Одна из них - присваивание переменным значений, вторая - предоставить возможность быстрого обращения к ним. Многие команды могут обращаться к переменным только в том случае, если они имеются в регистре. Поскольку существуют два возможных источника и два возможных приемника элемента данных (память и регистр), то имеются 4 различных случая копирования. В одних компьютерах имеются 4 команды для 4 случаев, в других - одна команда на все 4 случая. Некоторые компьюте­ры используют команду LOAD для загрузки из памяти в регистр, команду STORE - для записи из регистра в память, команду MOVE - для копирования из регистра в регистр, но не имеют команд для копирования из одной ячейки памяти в другую.

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

Соседние файлы в папке Архитектура ЭВМ