cpu
Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
| cpu [2026/07/17 11:34] – gecko | cpu [2026/10/20 17:47] (текущий) – gecko | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| ====== CPU ====== | ====== CPU ====== | ||
| - | Центральным процессором PlayStation является MIPS R3000, 32-битный RISC-микропроцессор, | + | Центральным процессором PlayStation является MIPS R3000, 32-битный RISC-микропроцессор, |
| + | |||
| + | ===== История ===== | ||
| + | Архитектура MIPS была разработана в Стэнфордском университете (США) под руководством Джона Хеннесси в первой половине 1980-х годов. MIPS Computer Systems была основана для коммерциализации этого проекта. В 1985 году вышла первая коммерческая реализация процессора - R2000, впоследствии доработанная в 1988 году, получив название R3000. | ||
| ===== Регистры ===== | ===== Регистры ===== | ||
| Строка 86: | Строка 89: | ||
| * jalr $r - безусловный переход по переменному адресу с сохранением адреса возврата в $31 | * jalr $r - безусловный переход по переменному адресу с сохранением адреса возврата в $31 | ||
| * jalr $r, $a - двухадресная форма jalr. Позволяет задать регистр для сохранения адреса возврата | * 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.1784288063.txt.gz · Последнее изменение: — gecko
