cpu
Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
| cpu [2026/07/17 11:29] – gecko | cpu [2026/07/17 12:48] (текущий) – gecko | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| ====== CPU ====== | ====== CPU ====== | ||
| - | Процессором PlayStation является MIPS R3000, 32-битный RISC-микропроцессор, | + | Центральным процессором PlayStation является MIPS R3000, 32-битный RISC-микропроцессор, |
| ===== Регистры ===== | ===== Регистры ===== | ||
| Строка 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 - переход по константному адресу, | ||
| + | * bltzal $r, imm - переход по константному адресу, | ||
| + | |||
| + | **Псевдоинструкции: | ||
| + | |||
| + | * li $r, imm - загружает 32-битную константу. Если значение длиннее 16 бит, инструкция транслируется в lui и ori. Если значение умещается в 16 бит и не имеет знака, транслируется в ori. Если значение умещается в 16 бит и имеет знак, транслируется в addiu с нулевым первым операндом | ||
| + | * nop - то же самое, что sll $0, $0, 0 (такой вариант удобен тем, что в машинном коде выглядит как 0x00000000). Инструкция-филлер, | ||
cpu.1784287769.txt.gz · Последнее изменение: — gecko
