Инструменты пользователя

Инструменты сайта


cpu

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
cpu [2026/07/17 11:29] geckocpu [2026/07/17 12:48] (текущий) gecko
Строка 1: Строка 1:
 ====== CPU ====== ====== CPU ======
-Процессором PlayStation является MIPS R3000, 32-битный RISC-микропроцессор, реализующий ISA MIPS I.+Центральным процессором PlayStation является MIPS R3000, 32-битный RISC-микропроцессор, реализующий ISA MIPS I.
  
 ===== Регистры ===== ===== Регистры =====
Строка 79: Строка 79:
  
 Инструкции загрузки не останавливают исполнение программы до тех пор, пока данные не будут доступны. Поэтому, если следующая инструкция зависит от загруженных данных, необходимо вставить [[слот задержки]]. Инструкции загрузки не останавливают исполнение программы до тех пор, пока данные не будут доступны. Поэтому, если следующая инструкция зависит от загруженных данных, необходимо вставить [[слот задержки]].
 +
 +**Безусловный переход:**
 +  * j imm - безусловный переход по константному адресу
 +  * jr $r - безусловный переход по переменному адресу
 +  * jal imm - безусловный переход по константному адресу с сохранением адреса возврата в $31
 +  * jalr $r - безусловный переход по переменному адресу с сохранением адреса возврата в $31
 +  * jalr $r, $a - двухадресная форма jalr. Позволяет задать регистр для сохранения адреса возврата
 +
 +**Условный переход (ветвление):**
 +  * beq $r, $a, imm - переход по константному адресу при равенстве операндов
 +  * bne $r, $a, imm - переход по константному адресу при неравенстве операндов
 +  * bgez $r, imm - переход по константному адресу, если операнд больше или равен нулю
 +  * bltz $r, imm - переход по константному адресу, если операнд меньше нуля
 +  * bgezal $r, imm - переход по константному адресу, если операнд больше или равен нулю, с сохранением адреса возврата в $31
 +  * bltzal $r, imm - переход по константному адресу, если операнд меньше нуля, с сохранением адреса возврата в $31
 +
 +**Псевдоинструкции:**
 +
 +  * li $r, imm - загружает 32-битную константу. Если значение длиннее 16 бит, инструкция транслируется в lui и ori. Если значение умещается в 16 бит и не имеет знака, транслируется в ori. Если значение умещается в 16 бит и имеет знак, транслируется в addiu с нулевым первым операндом
 +  * nop - то же самое, что sll $0, $0, 0 (такой вариант удобен тем, что в машинном коде выглядит как 0x00000000). Инструкция-филлер, известная также как "слот задержки".
cpu.1784287769.txt.gz · Последнее изменение: gecko

Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: CC0 1.0 Universal
CC0 1.0 Universal Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki