Система команд процессора MIPS R3000 игровой приставки SONY PLAYSTATION
1.5. Система команд процессора MIPS R3000 игровой приставки SONY PLAYSTATION
Команда
Запись на языке ассемблера
Описание
ADD
ADD rd, rs, rt
Сложение rd = rs + rt
ADDI
ADDI rt, rs, imm
Сложение с константой rt = rs + imm
ADDIU
ADDIU rt, rs, imm
Сложение с константой без учета знака
ADDU
ADDU rd, rs, rt
Сложение без учета знако rd = rs + rt
AND
AND rd, rs, rt
Логическое И rd = rs & rt
ANDI
ANDI rt, rs, imm
Логическое И с константой rt = rs & imm
BEQ
BEQ rt, rs, disp
Переход, если rt = rs
BGEZ
BGEZ rt, disp
Переход, если rt≥ 0
BGEZAL
BGEZAL rt, disp
Переход, если rt ≥ 0 с запоминанием адреса возврата в регистре 31
BGTZ
BGTZ rt, disp
Переход, если rt > 0
BLEZ
BLEZ rt, disp
Переход, если rt ≤ 0
BLTZ
BLTZ rt, disp
Переход, если rt < 0
BLTZAL
BLTZAL rt, disp
Переход, если rt < 0 с запоминанием адреса возврата в регистре 31
BNE
BNE rs, rt, disp
Переход, если rs не равно rt
BREAK
BREAK
Генерация исключения «точка прерывания»
CFC2
CFC2 rs,c2c
Копирование данных из управляющего регистра с2с сопроцессора графических вычислений (GTE) в регистр rs центрального процессора
COP2
COP2 <b25>
Обращение к сопроцессору 2 (GTE). Код команды сопроцессора определяется 25-разрядным двоичным числом b25
CTC2
CTC2 rs,c2c
Копирование данных из регистра rs в управляющий регистр с2с сопроцессора графических вычислений (GTE)
DIV
DIV rs, rt
Деление rs на rt. Частное помещается в регистр LO, остаток - в регистр HI
DIVU
DIVU rs, rt
Деление rs на rt без учета знака. Частное помещается в регистр LO, остаток - в регистр HI
J
J addr
Переход по указанному адресу
JAL
JAL addr
Переход по указанному адресу и сохранение адреса возврата в регистре 31
JALR
JALR rd,rs
Переход по адресу из регистра rs и сохранение адреса возврата в регистре rd. Если регистр rd не указан, используется регистр 31
JR
JR rs
Переход по адресу из регистра rs
LB
LB rt, disp(base)
Загрузка байта из ячейки памяти с адресом base+disp в регистр rt с расширением знакового бита
LBU
LBU rt, disp(base)
Загрузка байта из ячейки памяти с адресом base+disp в регистр rt без расширения знакового бита
LH
LH rt, disp(base)
Загрузка полуслова, расположенного по адресу base+disp, в регистр rt с расширением знакового бита
LHU
LHU rt, disp(base)
Загрузка полуслова, расположенного по адресу base+disp, в регистр rt с расширением знакового бита
LUI
LUI rt, imm
Загрузка константы в старшие 16 разрядов регистра rt
LW
LW rt, disp(base)
Загрузка слава, расположенного па адресу base+disp, в регистр rt
LWC2
LWC2 c2d, disp(base)
Загрузка полуслова, расположенного по адресу base+disp, в регистр данных c2d сопроцессора графических вычислений (GTE)
LWL
LWL rt, disp(base)
Загрузка слово, расположенного слева от адреса base+disp, в регистр rt без учета выравнивания
LWR
LWR rt, disp(base)
Загрузка слова, расположенного справа от адреса base+disp, в регистр rt без учета выравнивания
MFC0
MFCO rt, cOr
Копирование данных из регистра с0r сопроцессора управления системой в регистр rt процессора
MFC2
MFC2 rt,c2d
Копирование данных из регистра данных c2d сопроцессора графических вычислений в регистр rt процессора
MFHI
MFHI rd
Копирование данных из регистра HI в регистр rd
MFLO
MFLO rd
Копирование данных из регистра LO в регистр rd
MFC0
MTCO rd,c0r
Копирование данных из регистра rt процессора в регистр с0r сопроцессора управления системой
MFC2
MTC2 rd,c2d
Копирование данных из регистра rt процессора в регистр данных c2d сопроцессора графических вычислений
MTHI
MTHI rd
Копирование данных из регистра rd в регистр НI
MTLO
MTLO rd
Копирование данных из регистра rd в регистр LO
MULT
MULT rs, rt
Умножение rs на rt, результат в регистрах HI и LO
MULTU
MULTU rs, rt
Умножение rs на rt без учета знака, результат в регистрах HI и LO
OR
OR rd, rs, rt
Логическое ИЛИ rd = rs | rt
ORI
ORI rd, rs, imm
Логическое ИЛИ с константой rd = rs | imm
RFE
RFE
Разрешение прерываний и восстановление привилегий приложения
SB
SB rt, disp (base)
Сохранение младшего байта из регистра rt в ячейке памяти с адресом base+disp
SH
SH rt, disp (bose)
Сохранение полуслова (младшие 16 разрядов} из регистра rt в ячейке памяти с адресом base+disp
SLL
SLL rd, rt, sb
Логический сдвиг влево регистра rt на sb разрядов, результат помещается в регистр rd
SLLV
SLLV rd,rt,rs
Логический сдвиг влево регистре rt но rs разрядов, результат помещается в регистр rd
SLT
STL rd,rs,rt
Сравнение rs и rt. Результат в rd
SLTI
SLTI rt, rs, imm
Сравнение с константой
SLTIU
SLTIU rt, rs, imm
Сравнение с константой без учета знака
SLTU
SLTIU rd,rt,rs
Сравнение без учета знака
SRA
SRA rd,rt,sb
Логический сдвиг влево регистра rt на sb разрядов, результат помещается в регистр rd
SRAV
SRAV rd, rt, rs
Логический сдвиг влево регистра rt на rs разрядов, результат помещается в регистр rd
SRL
SRL rd, rt, sb
Логический сдвиг влево регистра rt на sb разрядов, результат помещается в регистр rd
SRLV
SRIV rd,rt,rs
Логический сдвиг влево регистра rt на rs разрядов, результат помещается в регистр rd
SUB
SUB rd,rt,re
Вычитание rd = rt - rs
SUBI
SUBI rt, rs, imm
Вычитание константы
SUBIU
SUBIU rt, rs,imm
Вычитание константы без учета знака
SUBU
SUBU rd,rt,rs
Вычитание без учета знака
SW
SW rt,disp(base)
Сохранение слова из регистра rt в ячейке памяти с адресом base+disp
SWC2
SWC2 c2d,disp(base)
Сохранение слова из регистра данных сопроцессора графических вычислений c2d в ячейке памяти с адресом base+disp
SWL
SWL rt, disp(base)
Сохранение слова из регистра rt в ячейках памяти, расположенных слева от адреса base+disp, без учета выравнивания
SWR
SWR rt, disp(base)
Сохранение слова из регистра rt в ячейках памяти, расположенных справа от адреса base+disp, без учета выравнивания
SYSCALL
SYSCALL <b20>
Вызов функции операционной системы. Номер функции определяется значением в 20-разрядном поле b20
XOR
XOR rd,rs,rt
Исключающее ИЛИ
XORI
XORI rs, rt, imm
Исключающее ИЛИ с константой
Условные обозначения: rd, rs, rt - регистры центрального процессора imm - 16-разрядная константа base - базовый адрес в памяти disp - 16-разрядное смещение с0r - регистр сопроцессора управления системой с2с - регистр управления-сопроцессора графических вычислений c2d - регистр данных сопроцессора графических вычислений sb - счетчик разрядов в операции сдвига (от 1 до 32) Ь20, Ь25 - битовые поля, определяющие код операции сопроцессора