谢娜何炅搞笑视频:MIPS 指令集(共31条)
来源:百度文库 编辑:中财网 时间:2024/10/06 00:05:32
助记符
指令格式
示例
示例含义
操作及其解释
Bit #
31..26
25..21
20..16
15..11
10..6
5..0
R-type
op
rs
rt
rd
shamt
func
add
000000
rs
rt
rd
00000
100000
add $1,$2,$3
$1=$2+$3
rd <- rs + rt ;其中rs=$2,rt=$3, rd=$1
addu
000000
rs
rt
rd
00000
100001
addu $1,$2,$3
$1=$2+$3
rd <- rs + rt ;其中rs=$2,rt=$3, rd=$1,无符号数
sub
000000
rs
rt
rd
00000
100010
sub $1,$2,$3
$1=$2-$3
rd <- rs - rt ;其中rs=$2,rt=$3, rd=$1
subu
000000
rs
rt
rd
00000
100011
subu $1,$2,$3
$1=$2-$3
rd <- rs - rt ;其中rs=$2,rt=$3, rd=$1,无符号数
and
000000
rs
rt
rd
00000
100100
and $1,$2,$3
$1=$2 & $3
rd <- rs & rt ;其中rs=$2,rt=$3, rd=$1
or
000000
rs
rt
rd
00000
100101
or $1,$2,$3
$1=$2 | $3
rd <- rs | rt ;其中rs=$2,rt=$3, rd=$1
xor
000000
rs
rt
rd
00000
100110
xor $1,$2,$3
$1=$2 ^ $3
rd <- rs xor rt ;其中rs=$2,rt=$3, rd=$1(异或)
nor
000000
rs
rt
rd
00000
100111
nor $1,$2,$3
$1=~($2 | $3)
rd <- not(rs | rt) ;其中rs=$2,rt=$3, rd=$1(或非)
slt
000000
rs
rt
rd
00000
101010
slt $1,$2,$3
if($2<$3)
$1=1 else
$1=0
if (rs < rt) rd=1 else rd=0 ;其中rs=$2,rt=$3, rd=$1
sltu
000000
rs
rt
rd
00000
101011
sltu $1,$2,$3
if($2<$3)
$1=1 else
$1=0
if (rs < rt) rd=1 else rd=0 ;其中rs=$2,rt=$3, rd=$1
(无符号数)
sll
000000
00000
rt
rd
shamt
000000
sll $1,$2,10
$1=$2<<10
rd <- rt << shamt ;shamt存放移位的位数,
也就是指令中的立即数,其中rt=$2, rd=$1
srl
000000
00000
rt
rd
shamt
000010
srl $1,$2,10
$1=$2>>10
rd <- rt >> shamt ;(logical) ,其中rt=$2, rd=$1
sra
000000
00000
rt
rd
shamt
000011
sra $1,$2,10
$1=$2>>10
rd <- rt >> shamt ;(arithmetic) 注意符号位保留
其中rt=$2, rd=$1
sllv
000000
rs
rt
rd
00000
000100
sllv $1,$2,$3
$1=$2<<$3
rd <- rt << rs ;其中rs=$3,rt=$2, rd=$1
srlv
000000
rs
rt
rd
00000
000110
srlv $1,$2,$3
$1=$2>>$3
rd <- rt >> rs ;(logical)其中rs=$3,rt=$2, rd=$1
srav
000000
rs
rt
rd
00000
000111
srav $1,$2,$3
$1=$2>>$3
rd <- rt >> rs ;(arithmetic) 注意符号位保留
其中rs=$3,rt=$2, rd=$1
jr
000000
rs
00000
00000
00000
001000
jr $31
goto $31
PC <- rs
I-type
op
rs
rt
immediate
addi
001000
rs
rt
immediate
addi $1,$2,100
$1=$2+100
rt <- rs + (sign-extend)immediate ;其中rt=$1,rs=$2
addiu
001001
rs
rt
immediate
addiu $1,$2,100
$1=$2+100
rt <- rs + (zero-extend)immediate ;其中rt=$1,rs=$2
andi
001100
rs
rt
immediate
andi $1,$2,10
$1=$2 & 10
rt <- rs & (zero-extend)immediate ;其中rt=$1,rs=$2
ori
001101
rs
rt
immediate
andi $1,$2,10
$1=$2 | 10
rt <- rs | (zero-extend)immediate ;其中rt=$1,rs=$2
xori
001110
rs
rt
immediate
andi $1,$2,10
$1=$2 ^ 10
rt <- rs xor (zero-extend)immediate ;其中rt=$1,rs=$2
lui
001111
00000
rt
immediate
lui $1,100
$1=100*65536
rt <- immediate*65536 ;将16位立即数放到目标寄存器高16
位,目标寄存器的低16位填0
lw
100011
rs
rt
immediate
lw $1,10($2)
$1=memory[$2
+10]
rt <- memory[rs + (sign-extend)immediate] ;rt=$1,rs=$2
sw
101011
rs
rt
immediate
sw $1,10($2)
memory[$2+10]
=$1
memory[rs + (sign-extend)immediate] <- rt ;rt=$1,rs=$2
beq
000100
rs
rt
immediate
beq $1,$2,10
if($1==$2)
goto PC+4+40
if (rs == rt) PC <- PC+4 + (sign-extend)immediate<<2
bne
000101
rs
rt
immediate
bne $1,$2,10
if($1!=$2)
goto PC+4+40
if (rs != rt) PC <- PC+4 + (sign-extend)immediate<<2
slti
001010
rs
rt
immediate
slti $1,$2,10
if($2<10)
$1=1 else
$1=0
if (rs <(sign-extend)immediate) rt=1 else rt=0 ;
其中rs=$2,rt=$1
sltiu
001011
rs
rt
immediate
sltiu $1,$2,10
if($2<10)
$1=1 else
$1=0
if (rs <(zero-extend)immediate) rt=1 else rt=0 ;
其中rs=$2,rt=$1
J-type
op
address
j
000010
address
j 10000
goto 10000
PC <- (PC+4)[31..28],address,0,0 ;address=10000/4
jal
000011
address
jal 10000
$31<-PC+4;
goto 10000
$31<-PC+4;PC <- (PC+4)[31..28],address,0,0
;address=10000/4
注意:因为MIPS16只有16个16位的寄存器,所以JAL指令中$31改成$15, 所有立即数均无需扩展,LUI指令直接就是将立即数付给RT寄存器。
指令格式
示例
示例含义
操作及其解释
Bit #
31..26
25..21
20..16
15..11
10..6
5..0
R-type
op
rs
rt
rd
shamt
func
add
000000
rs
rt
rd
00000
100000
add $1,$2,$3
$1=$2+$3
rd <- rs + rt ;其中rs=$2,rt=$3, rd=$1
addu
000000
rs
rt
rd
00000
100001
addu $1,$2,$3
$1=$2+$3
rd <- rs + rt ;其中rs=$2,rt=$3, rd=$1,无符号数
sub
000000
rs
rt
rd
00000
100010
sub $1,$2,$3
$1=$2-$3
rd <- rs - rt ;其中rs=$2,rt=$3, rd=$1
subu
000000
rs
rt
rd
00000
100011
subu $1,$2,$3
$1=$2-$3
rd <- rs - rt ;其中rs=$2,rt=$3, rd=$1,无符号数
and
000000
rs
rt
rd
00000
100100
and $1,$2,$3
$1=$2 & $3
rd <- rs & rt ;其中rs=$2,rt=$3, rd=$1
or
000000
rs
rt
rd
00000
100101
or $1,$2,$3
$1=$2 | $3
rd <- rs | rt ;其中rs=$2,rt=$3, rd=$1
xor
000000
rs
rt
rd
00000
100110
xor $1,$2,$3
$1=$2 ^ $3
rd <- rs xor rt ;其中rs=$2,rt=$3, rd=$1(异或)
nor
000000
rs
rt
rd
00000
100111
nor $1,$2,$3
$1=~($2 | $3)
rd <- not(rs | rt) ;其中rs=$2,rt=$3, rd=$1(或非)
slt
000000
rs
rt
rd
00000
101010
slt $1,$2,$3
if($2<$3)
$1=1 else
$1=0
if (rs < rt) rd=1 else rd=0 ;其中rs=$2,rt=$3, rd=$1
sltu
000000
rs
rt
rd
00000
101011
sltu $1,$2,$3
if($2<$3)
$1=1 else
$1=0
if (rs < rt) rd=1 else rd=0 ;其中rs=$2,rt=$3, rd=$1
(无符号数)
sll
000000
00000
rt
rd
shamt
000000
sll $1,$2,10
$1=$2<<10
rd <- rt << shamt ;shamt存放移位的位数,
也就是指令中的立即数,其中rt=$2, rd=$1
srl
000000
00000
rt
rd
shamt
000010
srl $1,$2,10
$1=$2>>10
rd <- rt >> shamt ;(logical) ,其中rt=$2, rd=$1
sra
000000
00000
rt
rd
shamt
000011
sra $1,$2,10
$1=$2>>10
rd <- rt >> shamt ;(arithmetic) 注意符号位保留
其中rt=$2, rd=$1
sllv
000000
rs
rt
rd
00000
000100
sllv $1,$2,$3
$1=$2<<$3
rd <- rt << rs ;其中rs=$3,rt=$2, rd=$1
srlv
000000
rs
rt
rd
00000
000110
srlv $1,$2,$3
$1=$2>>$3
rd <- rt >> rs ;(logical)其中rs=$3,rt=$2, rd=$1
srav
000000
rs
rt
rd
00000
000111
srav $1,$2,$3
$1=$2>>$3
rd <- rt >> rs ;(arithmetic) 注意符号位保留
其中rs=$3,rt=$2, rd=$1
jr
000000
rs
00000
00000
00000
001000
jr $31
goto $31
PC <- rs
I-type
op
rs
rt
immediate
addi
001000
rs
rt
immediate
addi $1,$2,100
$1=$2+100
rt <- rs + (sign-extend)immediate ;其中rt=$1,rs=$2
addiu
001001
rs
rt
immediate
addiu $1,$2,100
$1=$2+100
rt <- rs + (zero-extend)immediate ;其中rt=$1,rs=$2
andi
001100
rs
rt
immediate
andi $1,$2,10
$1=$2 & 10
rt <- rs & (zero-extend)immediate ;其中rt=$1,rs=$2
ori
001101
rs
rt
immediate
andi $1,$2,10
$1=$2 | 10
rt <- rs | (zero-extend)immediate ;其中rt=$1,rs=$2
xori
001110
rs
rt
immediate
andi $1,$2,10
$1=$2 ^ 10
rt <- rs xor (zero-extend)immediate ;其中rt=$1,rs=$2
lui
001111
00000
rt
immediate
lui $1,100
$1=100*65536
rt <- immediate*65536 ;将16位立即数放到目标寄存器高16
位,目标寄存器的低16位填0
lw
100011
rs
rt
immediate
lw $1,10($2)
$1=memory[$2
+10]
rt <- memory[rs + (sign-extend)immediate] ;rt=$1,rs=$2
sw
101011
rs
rt
immediate
sw $1,10($2)
memory[$2+10]
=$1
memory[rs + (sign-extend)immediate] <- rt ;rt=$1,rs=$2
beq
000100
rs
rt
immediate
beq $1,$2,10
if($1==$2)
goto PC+4+40
if (rs == rt) PC <- PC+4 + (sign-extend)immediate<<2
bne
000101
rs
rt
immediate
bne $1,$2,10
if($1!=$2)
goto PC+4+40
if (rs != rt) PC <- PC+4 + (sign-extend)immediate<<2
slti
001010
rs
rt
immediate
slti $1,$2,10
if($2<10)
$1=1 else
$1=0
if (rs <(sign-extend)immediate) rt=1 else rt=0 ;
其中rs=$2,rt=$1
sltiu
001011
rs
rt
immediate
sltiu $1,$2,10
if($2<10)
$1=1 else
$1=0
if (rs <(zero-extend)immediate) rt=1 else rt=0 ;
其中rs=$2,rt=$1
J-type
op
address
j
000010
address
j 10000
goto 10000
PC <- (PC+4)[31..28],address,0,0 ;address=10000/4
jal
000011
address
jal 10000
$31<-PC+4;
goto 10000
$31<-PC+4;PC <- (PC+4)[31..28],address,0,0
;address=10000/4
注意:因为MIPS16只有16个16位的寄存器,所以JAL指令中$31改成$15, 所有立即数均无需扩展,LUI指令直接就是将立即数付给RT寄存器。
、计算机的运算速度一般用 MIPS来表示,那么150 MIPS 代表该计算机的运行速度每秒可执行( )条指令。
MIPS是速度指标还是指令处理能力指标
UCP500共多少条?
谜语 共8条
GSP共320条内容
几条指令的意思
什么是mips
MIPS是什么意思?
什么是mips
MIPS是什么
MIPS处理器
MIPS是什么
MIPS是什么意思
《中学生日常行为规范》是( )新修订的,共( )条
请用12生肖,分别说一句成语、歇后语或俗语均可。(共12条)。
我的提问 (共2条)
美国现行法律共多少条?
中国现行法律共多少条?
中国人民共和国管理法共多少条
pisa指令集具体地说是什么?我指每一条都干嘛...
哪条指令错误 为什么啊
3件上衣和7条裤子共430元,同样的7件上衣和3条裤子共470元,每件上衣和每条裤子各多少元?(10分)
mips的含义
MIPS是指什么?