Статус
нашего
сайта:
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

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


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

Команды UltraSPARC III

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

SRC — регистр-источник;

DST — регистр-приемник;

R1 — регистр-источник;

S2 — источник (регистр или непосредственно данные);

ADDR — адрес памяти;

TRAP# — номер системного прерывания;

FCN — код функции;

MASK — тип операции;

CON — константа;

V — обозначение регистра;

СС — набор кодов условия;

R — регистр-приемник;

сс — условие;

г - LZ, LEZ, Z, NZ, GZ или GEZ.

В таблице не представлены команды с плавающей точкой, команды управления (например, команды управления кэш-памятью, команды перезагрузки системы), команды, включающие отличные от пользовательских адресные пространства, устаревшие команды. Набор команд удивительно мал. Оно и понятно, ведь UltraSPARC III — это RISC-процессор.

Структура команд LOAD и STORE очень проста. Эти команды имеют варианты для 1, 2, 4 и 8 байт. Если в 64-разрядный регистр загружается число размером меньше 64 бит, это число может быть либо расширено по знаку, либо дополнено нулями. Существуют команды для обоих вариантов.

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

Таблица 5.10. Основные команды процессора UltraSPARC III

Команда

Описание

Команды загрузки

 

LDSB ADDR, DST

Загрузка байта со знаком (8 бит)

intbl@tabl_body = LDUB ADDR, DST

Загрузка байта без знака (8 бит)

LDSH ADDR, DST

Загрузка полуслова со знаком (8 бит)

LDUH ADDR, DST

Загрузка полуслова без знака (16 бит)

LDSW ADDR, DST

Загрузка слова со знаком (32 бита)

LDUW ADDR, DST

Загрузка слова без знака (32 бита)

LDX ADDR, DST

Загрузка расширенного слова (64 бита)

Команды сохранения

 

STB SRC, ADDR

Сохранение байта (8 бит)

STH SRC, ADDR

Сохранение полуслова (16 бит)

STW SRC, ADDR

Сохранение слова (32 бита)

STX SRC, ADDR

Загружает расширенное слово (64 бита)

Арифметические команды

 

ADD R1, S2, DST

Сложение

ADDCC

Сложение и установка кода условия

ADDC

Сложение с переносом

ADDCCC

Сложение с переносом и установкой кода

 

условия

SUB R1, S2, DST

Вычитание

SUBCC

Вычитание с установкой кода условия

SUBC

Вычитание с переносом

SUBCCC

Вычитание с установкой кода переноса

MULXR1, S2, DST

Умножение

SDIVXR1, S2, DST

Деление с учетом знака

UDIVX R1, S2, DST

Деление без учета знака

TADCCR1,S2, DST

Сложение с использованием поля тега

Команды обычного и циклического сдвига

 

SLLR1, S2, DST

Логический сдвиг влево (32 бита)

SLLXR1, S2, DST

Логический сдвиг влево (64 бита)

SRLR1, S2, DST

Логический сдвиг вправо (32 бита)

SRLXR1, S2, DST

Логический сдвиг вправо (64 бита)

SRAR1, S2, DST

Арифметический сдвиг вправо (32 бита)

SRAXR1, S2, DST

Арифметический сдвиг вправо (64 бита)

Логические команды

 

AND R1, S2, DST

Логическое И

ANDCC R1, S2, DST

Логическое И с установкой кода условия

ANDN R1, S2, DST

Логическое НЕ-И

Команда

Описание

ANDNCC R1. S2, DST

Логическое НЕ-И с установкой кода условия

OR R1. S2, DST

Логическое ИЛИ

ORCC R1, S2, DST

Логическое ИЛИ с установкой кода условия

ORN R1, S2, DST

Логическое НЕ-ИЛИ

ORNCC R1, S2, DST

Логическое НЕ-ИЛИ с установкой кода

 

условия

XOR R1. S2, DST

Логическое ИСКЛЮЧАЮЩЕЕ ИЛИ

XORCC R1, S2, DST

Логическое ИСКЛЮЧАЮЩЕЕ ИЛИ

 

с установкой кода условия

XNOR R1, S2, DST

Логическое ИСКЛЮЧАЮЩЕЕ НЕ-ИЛИ

XNORCC

Логическое ИСКЛЮЧАЮЩЕЕ НЕ-ИЛИ

 

с установкой кода условия

Команды передачи управления

 

BPcc ADDR

Переход с прогнозированием ветвлений

BPr SRC, ADDR

Переход в регистр

CALL ADDR

Вызов процедуры

RETURN ADDR

Выход из процедуры

JMPL ADDR, DST

Переход со связыванием

SAVE R1, S2, DST

Расширение регистровых окон

RESTORE R1, S2. DST

Восстановление регистровых окон

Тсс CC, TRAP#

Системное прерывание при определенном

 

условии

PREFETCH FNC

Выборка данных из памяти с упреждением

LDSTUB ADDR, R

Атомарная операция загрузки/сохранения

MEMBAR MASK

Барьер в памяти

Прочие команды

 

SETHI CON, DST

Установка битов с 10-го по 13-й

MOVcc CC, S2, DST

Перемещение при определенном условии

MOVr, R1, S2, DST

Перемещение в зависимости от значения

 

регистра

NOP

Пустая операция

POPC S1, DST

Подсчет генеральной совокупности

RDCCR V, DST

Чтение регистра кода условия

WRCCR, R1, S2, V

Запись регистра кода условия

RDPC V, DST

Чтение счетчика команд

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


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

.