В таблице 1 содержится информация о командах передачи данных.
Таблица 1. Операции передачи данных.
Стандартные инструкции |
|||||||||
Название |
Синтаксис инструкции |
Значение |
Формат/ код/ функция |
Примечание |
|||||
Load double word |
Ld $t, C($s) |
$t=Memory[$s+C] |
I |
2316 |
- |
Загружает double word из MEM[$s+C] и следующих 7 байтов в $t и следующий регистр. |
|||
Load word |
Lw $t, C($s) |
$t=Memory[$s+C] |
I |
2216 |
- |
Загружает double word из MEM[$s+C] и следующих 3 байтов. |
|||
Load halfword |
Lh $t, C($s) |
$t=Memory[$s+C] (знаковое) |
I |
2116 |
- |
Загружает double word из MEM[$s+C] и следующего байта. Знак расширен до ширины регистра. |
|||
Load halfword unsigned |
Lhu $t, C($s) |
$t=Memory[$s+C] (беззнаковое) |
I |
2516 |
- |
Загружает double word из MEM[$s+C] и следующего байта. Без расширения знака. |
|||
Load byte |
Lb $t, C($s) |
$t=Memory[$s+C] (знаковое) |
I |
2016 |
- |
Загружает байт из MEM[$s+C]. Знак расширен до ширины регистра. |
|||
Load byte unsigned |
Lbu $t, C($s) |
$t=Memory[$s+C] (беззнаковое) |
I |
2416 |
- |
Загружает байт из MEM[$s+C]. Без расширения знака. |
|||
Store double word |
sd $s, С($t) |
Memory[$s+C]=$t |
I |
- |
- |
Сохраняет два типа word из $t и следующего регистра в MEM[$s+C] и следующих 7 байтах. Является псевдоинструкцией. |
|||
Store word |
sw $s, С($t) |
Memory[$s+C]=$t |
I |
2B16 |
- |
Сохраняет тип word из $t в MEM[$s+C] и следующих 3 байтах. |
|||
Store half |
sh $s, С($t) |
Memory[$s+C]=$t |
I |
2916 |
- |
Сохраняет тип half word из $t (первую половину регистра) в MEM[$s+C] и следующем байте. |
|||
Store byte |
sb $s, С($t) |
Memory[$s+C]=$t |
I |
2816 |
- |
Сохраняет тип byte из $t (первую четверть регистра) в MEM[$s+C]. |
|||
Load upper immediate |
Lui $t, C |
$t=C<<16 |
I |
F16 |
|
Загружает 16-битный операнд в вышестоящие 16 битов определенного регистра. Максимальная величина |
|||
Move from high |
Mfhi $d |
$d=HI |
R |
0 |
1016 |
Помещает значение из HI в регистр. |
|||
Move from low |
Mflo $d |
$d=LO |
R |
0 |
1216 |
Помещает значение из LO в регистр. |
|||
Move from Control Register |
mfcZ $t, $s |
$t=Coprocessor[Z].ControlRegister[$s] |
R |
0 |
|
Перемещает 4-байтовое значение из сопроцессора регистра Z-контроля в регистр общего назначения. Расширение знака. |
|||
Move to Control Register |
mtcZ $t, $s |
Coprocessor[Z].ControlRegister[$s]=$t |
R |
0 |
|
Перемещает 4-байтовое значение из регистра общего назначения в сопроцессор регистра Z-контроля в регистр общего назначения. Расширение знака. |
|||
Инструкции сопроцессора для работы с вещественными числами |
|||||||||
Load word coprocessor |
lwcZ $x,CONST ($y) |
Coprocessor[Z].DataRegister[$x] = Memory[$y + CONST] |
I |
- |
- |
Загружает 4 байта типа word из: MEM[$2+CONST] в регистр данных сопроцессора. Расширение знака. |
|||
Store word coprocessor |
swcZ $x,CONST ($y) |
Memory[$y + CONST] = Coprocessor[Z].DataRegister[$x] |
I |
- |
- |
Записывает 4 байта из регистра данных сопроцессора в MEM[$2+CONST]. Расширение знака. |