MIPS指令指令功能应用实例LB从存储器中读取一个字节的数据到寄存器中LBR1,0(R2)LH从存储器中读取半个字的数据到寄存器中LHR1,0(R2)LW从存储器中读取一个字的数据到寄存器中LWR1,0(R2)LD从存储器中读取双字的数据到寄存器中LDR1,0(R2)L.S从存储器中读取单精度浮点数到寄存器中L.SR1,0(R2)L.D从存储器中读取双精度浮点数到寄存器中L.DR1,0(R2)LBU功能与LB指令相同,但读出的是不带符号的数据LBUR1,0(R2)LHU功能与LH指令相同,但读出的是不带符号的数据LHUR1,0(R2)LWU功能与LW指令相同,但读出的是不带符号的数据LWUR1,0(R2)SB把一个字节的数据从寄存器存储到存储器中SBR1,0(R2)SH把半个字节的数据从寄存器存储到存储器中SHR1,0(R2)SW把一个字的数据从寄存器存储到存储器中SWR1,0(R2)SD把两个字节的数据从寄存器存储到存储器中SDR1,0(R2)S.S把单精度浮点数从寄存器存储到存储器中S.SR1,0(R2)S.D把双精度数据从存储器存储到存储器中S.DR1,0(R2)DADD把两个定点寄存器的内容相加,也就是定点加DADDR1,R2,R3DADDI把一个寄存器的内容加上一个立即数DADDIR1,R2,#3DADDU不带符号的加DADDUR1,R2,R3DADDIU把一个寄存器的内容加上一个无符号的立即数DADDIUR1,R2,#3ADD.S把一个单精度浮点数加上一个双精度浮点数,结果是单精度浮点数ADD.SF0,F1,F2ADD.D把一个双精度浮点数加上一个单精度浮点数,结果是双精度浮点数ADD.DF0,F1,F2ADD.PS两个单精度浮点数相加,结果是单精度浮点数ADD.PSF0,F1,F2DSUB两个寄存器的内容相减,也就是定点数的减DSUBR1,R2,R3DSUBU不带符号的减DSUBUR1,R2,R3SUB.S一个双精度浮点数减去一个单精度浮点数,结果为单精度SUB.SF1,F2,F3SUB.D一个双精度浮点数减去一个单精度浮点数,结果为双精度浮点数SUB.DF1,F2,F3SUB.PS两个单精度浮点数相减SUB.SPF1,F2,F3DDIV两个定点寄存器的内容相除,也就是定点除DDIVR1,R2,R3DDIVU不带符号的除法运算DDIVUR1,R2,R3DIV.S一个双精度浮点数除以一个单精度浮点数,结果为单精度浮点数DIV.SF1,F2,F3DIV.D一个双精度浮点数除以一个单精度浮点数,结果为双精度浮点数DIV.DF1,F2,F3DIV.PS两个单精度浮点数相除,结果为单精度DIV.PSF1,F2,F3DMUL两个定点寄存器的内容相乘,也就是定点乘DMULR1,R2,R3DMULU不带符号的乘法运算DMULUR1,R2,R3MUL.S一个双精度浮点数乘以一个单精度浮点数,结果为单精度浮点数DMUL.SF1,F2,F3MUL.D一个双精度浮点数乘以一个单精度浮点数,结果为双精度浮点数DMUL.DF1,F2,F3MUL.PS两个单精度浮点数相乘,结果为单精度浮点数DMUL.PSF1,F2,F3AND与运算,两个寄存器中的内容相与ANDR1,R2,R3ANDI一个寄存器中的内容与一个立即数相与ANDIR1,R2,#3OR或运算,两个寄存器中的内容相或ORR1,R2,R3ORI一个寄存器中的内容与一个立即数相或ORIR1,R2,#3XOR异或运算,两个寄存器中的内容相异或XORR1,R2,R3XORI一个寄存器中的内容与一个立即数异或XORIR1,R2,#3BEQZ条件转移指令,当寄存器中内容为0时转移发生BEQZR1,0BENZ条件转移指令,当寄存器中内容不为0时转移发生BNEZR1,0BEQ条件转移指令,当两个寄存器内容相等时转移发生BEQR1,R2BNE条件转移指令,当两个寄存器中内容不等时转移发生BNER1,R2J直接跳转指令,跳转的地址在指令中JnameJR使用寄存器的跳转指令,跳转地址在寄存器中JRR1JAL直接跳转指令,并带有链接功能,指令的跳转地址在指令中,跳转发生时要把返回地址存放到R31这个寄存器中JALR1nameJALR使用寄存器的跳转指令,并且带有链接功能,指令的跳转地址在寄存器中,跳转发生时指令的放回地址放在R31这个寄存器中JALRR1MOV.S把一个单精度浮点数从一个浮点寄存器复制到另一个浮点寄存器MOV.SF0,F1MOV.D把一个双精度浮点数从一个浮点寄存器复制到另一个浮点寄存器MOV.DF0,F1MFC0把一个数据从通用寄存器复制到特殊寄存器MFC0R1,R2MTC0把一个数据从特殊寄存器复制到通用寄存器MTC0R1,R2MFC1把一个数据从定点寄存器复制到浮点寄存器MFC1R1,F1MTC1把一个数据从浮点寄存器复制到定点寄存器MTC1R1,F1LUI把一个16位的立即数填入到寄存器的高16位,低16位补零LUIR1,#42DSLL双字逻辑左移DSLLR1,R2,#2DSRL双字逻辑右移DSRLR1,R2,#2DSRA双字算术右移DSRAR1,R2,#2DSLLV可变的双字逻辑左移DSLLVR1,R2,#2DSRLV可变的双字罗伊右移DSRLVR1,R2,#2DSRAV可变的双字算术右移DSRAVR1,R2,#2SLT如果R2的值小于R3,那么设置R1的值为1,否则设置R1的值为0SLTR1,R2,R3SLTI如果寄存器R2的值小于立即数,那么设置R1的值为1,否则设置寄存器R1的值为0SLTIR1,R2,#23SLTU功能与SLT一致,但是带符号的SLTUR1,R2,R3SLTUI功能与SLT一致,但不带符号SLTUIR1,R2,R3MOVN如果第三个寄存器的内容为负,那么复制一个寄存器的内容到另外一个寄存器MOVNR1,R2,R3MOVZ如果第三个寄存器的内容为0,那么复制一个寄存器的内容到另外一个寄存器MOVZR1,R2,R3TRAP根据地址向量转入管态ERET从异常中返回到用户态MADD.S一个双精度浮点数与单精度浮点数相乘加,结果为单精度MADD.D一个双精度浮点数与单精度浮点数相乘加,结果为双精度MADD.PS两个单精度浮点数相乘加,结果为单精度