MIPS
来源:互联网 发布:逻辑回归模型 知乎 编辑:程序博客网 时间:2024/05/08 03:10
想知道PS2的工作的原理或想对PS2程序进行调试,就必须要了解PS2的CPU EE所使用的R5900指令集。这里简单列出R5900命令表,原作者:KHDG,这里略有改动。
ADD -- Add
含义:两个存储地址数值($s)和并储存到该地址中
$d = $s + $t
后缀表现形式为(以下省略):add $d, $s, $t
ADDI -- Add immediate
含义:一个储存地址数值($s以下省略)加一个即时读取值(imm以下省略)
$t = $s + imm
addi $t, $s, imm
ADDIU -- Add immediate unsigned
含义:一个储存地址数值加一个无符号即时读取值
$t = $s + imm
addiu $t, $s, imm
ADDU -- Add unsigned
含义:两个存储地址数值的和并存到第一个存储地址中
$d = $s + $t
addu $d, $s, $t
AND -- Bitwise and
含义:逻辑与两个存储地址数值的值并存到第一个存储地址中
$d = $s & $t
and $d, $s, $t
ANDI -- Bitwise and immediate
含义:逻辑与一个存储地址数值和一个立即数的值并存到第一个存储地址中
$t = $s & imm
andi $t, $s, imm
BEQ -- Branch on equal
含义:比较两个存储地址数值相等,若相等则偏移地址逻辑左移两位
if $s == $t offset << 2
beq $s, $t, offset
BGEZ -- Branch on greater than or equal to zero
含义:比较如果存储地址数值的值大于或等于零,则偏移地址逻辑左移两位
if $s >= 0 offset << 2
bgez $s, offset
BGEZAL -- Branch on greater than or equal to zero and link
含义:比较如果存储地址数值的值大于或等于零,则把返回的地址存入ar存储地址中
if $s >= 0 offset << 2 $31 = PC + 8 (PC-程序计数器) $31就是ar
bgezal $s, offset
BGTZ -- Branch on greater than zero
含义:比较如果存储地址数值大于零,则偏移地址逻辑左移两位
if $s > 0 offset << 2
bgtz $s, offset
BLEZ -- Branch on less than or equal to zero
含义:比较如果存储地址数值小于或等于零,则偏移地址逻辑左移两位
if $s <= 0 offset << 2
blez $s, offset
BLTZ -- Branch on less than zero
含义:比较如果存储地址数值小于零,则偏移地址逻辑左移两位
if $s < 0 offset << 2
bltz $s, offset
BLTZAL -- Branch on less than zero and link
含义:比较如果存储地址数值小于零,则把返回的地址存入ar存储地址中
if $s < 0 offset << 2 $31 = PC + 8 (PC-程序计数器) $31就是ar
bltzal $s, offset
BNE -- Branch on not equal
含义:比较两个存储地址数值不相等,则偏移地址逻辑左移两位
if $s != $t offset << 2
bne $s, $t, offset
DIV -- Divide
含义:除法运算,商存入LO,余数存入HI
$LO = $s / $t $HI = $s % $t
div $s, $t
DIVU -- Divide unsigned
含义:无符号除法,商存入LO,余数存入HI
$LO = $s / $t $HI = $s % $t
divu $s, $t
J -- Jump
含义:跳到计算所得地址
PC = nPC nPC = (PC & 0xf0000000) target << 2
j target
JAL -- Jump and link
含义:跳到计算所得地址,并存入ar中
$31 = PC + 8(or nPC + 4); PC = nPC; nPC = (PC & 0xf0000000) | (target << 2);
jal target
JR -- Jump register
含义:跳到存储地址数值中
PC = nPC; nPC = $s;
jr $s
LB -- Load byte
含义:从叙述地址载入一个字节到存储地址数值中
$t = MEM[$s + offset]
lb $t, offset($s)
LUI -- Load upper immediate
含义:立即数值取左十六位,并存入存储地址($t)。低位补零
$t = (imm << 16);
lui $t, imm
LW -- Load word
含义:从叙述地址载入一个字(从某MEM中,提取offest后面的值+入$s)到存储地址中
$t = MEM[$s + offset];
lw $t, offset($s)
MFHI -- Move from HI
含义:把HI存储地址数值的值放到叙述存储地址中
$d = $HI
mfhi $d
MFLO -- Move from LO
含义:把LO存储地址数值的值放到叙述存储地址中
$d = $LO
mflo $d
MULT -- Multiply
含义:两个存储地址数值相乘结果存入LO中
$LO = $s * $t
mult $s, $t
MULTU -- Multiply unsigned
含义:无符号两个存储地址数值相乘结果存入LO中
$LO = $s * $t
multu $s, $t
NOOP -- no operation
含义:不做任何操作
OR -- Bitwise or
含义:逻辑或两个存储地址数值结果存入一个存储地址中
$d = $s | $t
or $d, $s, $t
ORI -- Bitwise or immediate
含义:逻辑或一个存储地址数值和一个立即数的值结果存入一个存储地址中
$t = $s | imm
ori $t, $s, imm
SB -- Store byte
含义:存储一个字节
MEM[$s + offset] = (0xff & $t);
sb $t, offset($s)
SLL -- Shift left logical
含义:逻辑左移
$d = $t << h
sll $d, $t, h
SLLV -- Shift left logical variable
含义:指定循环次数的逻辑左移
$d = $t << $s
sllv $d, $t, $s
SLT -- Set on less than (signed)
含义:比较
if $s < $t $d = 1
slt $d, $s, $
SLTI -- Set on less than immediate (signed)
含义:比较,与立即数
if $s < imm $t = 1
slti $t, $s, imm
SLTIU -- Set on less than immediate unsigned
含义:比较,与无符号立即数
if $s < imm $t = 1
sltiu $t, $s, imm
SLTU -- Set on less than unsigned
含义:比较,与无符号数
if $s < $t $d = 1
sltu $d, $s, $t
SRA -- Shift right arithmetic
含义:算术左移
$d = $t >> h
sra $d, $t, h
SRL -- Shift right logical
含义:逻辑右移
$d = $t >> h
srl $d, $t, h
SRLV -- Shift right logical variable
含义:指定循环次数的逻辑右移
$d = $t >> $s
srlv $d, $t, $s
SUB -- Subtract
含义:两个存储地址数值相减结果存入一个存储地址中
$d = $s - $t
sub $d, $s, $t
SUBU -- Subtract unsigned
含义:两个无符号存储地址数值相减结果存入一个存储地址中
$d = $s - $t
subu $d, $s, $t
SW -- Store word
含义:存储一个字
MEM[$s + offset] = $t
sw $t, offset($s)
SYSCALL -- System call(默认为系统储存)
含义:产生一个软中断
syscall
XOR -- Bitwise exclusive or
含义:异或两个存储地址数值结果存入一个存储地址中
$d = $s ^ $t
xor $d, $s, $t
XORI -- Bitwise exclusive or immediate
含义:异或一个存储地址数值和一个立即数的值结果存入一个存储地址中
$t = $s ^ imm
xori $t, $s, imm
- MIPS
- MIPS
- MIPS
- MIPS
- MIPS
- MIPS Assembly/MIPS Details
- mips 虚拟机
- MIPS是什么意思
- mips 内存空间
- MIPS简介
- mips学习
- MIPS CPI
- MIPS是什么意思
- hello mips!
- mips linux
- MIPS 解释
- MIPS 汇编
- MIPS 指令
- linux tar命令
- HDU--warmup2(1001)
- 【转】对 HTTP 304 的理解
- 读《轻量级JavaEE企业应用实战(第三版)》笔记(一)
- 当前时间 java
- MIPS
- HTTP 304客户端缓存优化的神奇作用和用法
- HDU--warmup2(1007)
- Handler消息机制的一些原理(直接用code讲解)
- linux sed命令
- nodejs笔记1
- HDU---warmup(1012)
- 最实用的10个重构小技巧排行榜,您都用过哪些呢?
- 关于全屏和取消标题栏