资源描述:
《mips32指令集(多来源格式整齐)》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、MIPS32指令集MIPS指令可以分成以下各类: 空操作no-op; 寄存器/寄存器传输:用得很广,包括条件传输在内; 常数加载:作为数值和地址的整型立即数; 算术/逻辑指令; 整数乘法、除法和求余数; 整数乘加; 加载和存储; 跳转、子程序调用和分支; 断点和自陷; CP0功能:CPU控制指令 浮点; 用户态的受限访问:rdhwr和synci注:64位版本开头以“d”表示,无符号数以“u”结尾,立即数通常以“i”结尾,字节操作以“b”结尾,双字操作以“d”结
2、尾,字操作以“w”结尾1、空操作:nop:相当于sllzero,zero,o, ssnop:equalssllzero,zero,1. 这个指令不得与其它指令同时发送,这样就保证了其运行要花费至少一个时钟周期。这在简单的流水线的CPU上无关紧要,但在复杂些的实现上对于实现强制的延时很有用。2、寄存器/寄存器传送: move:通常用跟$zero寄存器的or来实现,或者用addu。 movf,movt,movn,movz:条件传送。3、常数加载:
3、 dla、la:用来加载程序中某些带标号的位置或者变量的地址的宏指令; dli、li:装入立即数常数,这是一个宏指令; lui:把立即数加载到寄存器高位。4、算术/逻辑运算: add、addi、dadd、daddi、addu、addiu、daddu、daddiu、dsub、sub、subu:加法指令和减法指令; abs,dabs:绝对值; dneg、neg、negu:取相反数; and、andi、or、ori、xor、nor:逐位逻辑操作指令; dr
4、ol、rol、ror:循环移位指令; sll、srl、sra:移位。5、条件设置指令: slt、slti、sltiu、sltu、seq、sge、sle、sne:条件设置。6、整数乘法、除法和求余数: div、mul、rem等等。7、整数乘加(累加): mad等。8、加载和存储: lb、ld、ldl、ldr、sdl、sdr、lh、lhu、ll、sc、pref、sb等操作。9、浮点加载和存储: l.d、l.s、s.d、s.s等常用MIPS指令集及格式:MIPS指令
5、集(共31条)助记符指令格式示例示例含义操作及其解释Bit#31..2625..2120..1615..1110..65..0 R-typeoprsrtrdshamtfunc add000000rsrtrd00000100000 add$1,$2,$3 $1=$2+$3 rd<-rs+rt ;其中rs=$2,rt=$3,rd=$1addu000000rsrtrd00000100001 addu$1,$2,$3 $1=$2+$3 rd<-rs+rt ;其中rs=$2,rt=$3,rd=$1,无
6、符号数sub000000rsrtrd00000100010 sub$1,$2,$3 $1=$2-$3 rd<-rs-rt ;其中rs=$2,rt=$3,rd=$1subu000000rsrtrd00000100011 subu$1,$2,$3 $1=$2-$3 rd<-rs-rt ;其中rs=$2,rt=$3,rd=$1,无符号数and000000rsrtrd00000100100 and$1,$2,$3 $1=$2 & $3 rd<-rs&rt ;其中rs=$2,rt=$3,rd=$1or00
7、0000rsrtrd00000100101 or$1,$2,$3 $1=$2
8、 $3 rd<-rs
9、rt ;其中rs=$2,rt=$3,rd=$1xor000000rsrtrd00000100110 xor$1,$2,$3 $1=$2 ^ $3 rd<-rsxorrt ;其中rs=$2,rt=$3,rd=$1(异或)nor000000rsrtrd00000100111 nor$1,$2,$3 $1=~($2
10、 $3) rd<-not(rs
11、rt) ;其中rs=$2,rt=$3,rd=$1(或
12、非)slt000000rsrtrd00000101010 slt$1,$2,$3 if($2<$3) $1=1 else $1=0 if(rs