MIPS-C指令集详解:55条指令、11个子类功能分类

需积分: 13 4 下载量 127 浏览量 更新于2024-07-19 1 收藏 778KB PDF 举报
MIPS-C指令集详解 MIPS-C指令集是MIPS指令集的一个子集,包含了55条指令,能够支持除浮点运算外的绝大多数定点类程序的运行。该指令集提供了包括CP0、异常处理等指令,可以支持简单的操作系统的运行。从功能角度,MIPS-C指令集可以划分为11个子类,分别是加载、保存、R-R运算、逻辑运算、移位运算、跳转指令、异常处理、协处理器指令、 load linked、store conditional、特殊指令等。 加载指令: 加载指令用于从内存中加载数据到寄存器中。MIPS-C指令集中的加载指令有LB、LBU、LH、LHU、LW等。 * LB(加载字节):从内存中加载一个字节到寄存器中。格式为LB rt, offset(rs),其中rt是目标寄存器,offset是偏移量,rs是基地址寄存器。 * LBU(加载字节无符号):从内存中加载一个字节到寄存器中,并将其视为无符号数。格式为LBU rt, offset(rs)。 * LH(加载半字):从内存中加载一个半字到寄存器中。格式为LH rt, offset(rs)。 * LHU(加载半字无符号):从内存中加载一个半字到寄存器中,并将其视为无符号数。格式为LHU rt, offset(rs)。 * LW(加载字):从内存中加载一个字到寄存器中。格式为LW rt, offset(rs)。 保存指令: 保存指令用于将寄存器中的数据保存到内存中。MIPS-C指令集中的保存指令有SB、SH、SW等。 * SB(存储字节):将寄存器中的一个字节保存到内存中。格式为SB rt, offset(rs)。 * SH(存储半字):将寄存器中的一个半字保存到内存中。格式为SH rt, offset(rs)。 * SW(存储字):将寄存器中的一个字保存到内存中。格式为SW rt, offset(rs)。 R-R运算指令: R-R运算指令用于执行寄存器之间的算术运算。MIPS-C指令集中的R-R运算指令有ADD、ADDU、SUB、SUBU、MULT、MULTU等。 * ADD(加):将两个寄存器的值相加,并将结果保存到目标寄存器中。格式为ADD rd, rs, rt。 * ADDU(无符号加):将两个寄存器的值相加,并将结果保存到目标寄存器中,忽略溢出标志。格式为ADDU rd, rs, rt。 * SUB(减):将两个寄存器的值相减,并将结果保存到目标寄存器中。格式为SUB rd, rs, rt。 * SUBU(无符号减):将两个寄存器的值相减,并将结果保存到目标寄存器中,忽略溢出标志。格式为SUBU rd, rs, rt。 * MULT(乘):将两个寄存器的值相乘,并将结果保存到HI和LO寄存器中。格式为MULT rs, rt。 * MULTU(乘无符号):将两个寄存器的值相乘,并将结果保存到HI和LO寄存器中,忽略溢出标志。格式为MULTU rs, rt。 逻辑运算指令: 逻辑运算指令用于执行逻辑运算。MIPS-C指令集中的逻辑运算指令有AND、OR、XOR、NOR等。 移位运算指令: 移位运算指令用于执行移位运算。MIPS-C指令集中的移位运算指令有SLL、SRL、SRA等。 跳转指令: 跳转指令用于控制程序的流程。MIPS-C指令集中的跳转指令有J、JAL、JR等。 异常处理指令: 异常处理指令用于处理异常情况。MIPS-C指令集中的异常处理指令有BREAK、SYSCALL等。 协处理器指令: 协处理器指令用于访问协处理器的寄存器。MIPS-C指令集中的协处理器指令有MFC0、MTC0等。 load linked指令: load linked指令用于加载数据到寄存器中,并将其标记为已加载。MIPS-C指令集中的load linked指令有LL等。 store conditional指令: store conditional指令用于将寄存器中的数据保存到内存中,并检查是否成功。MIPS-C指令集中的store conditional指令有SC等。 特殊指令: 特殊指令用于执行特殊的操作。MIPS-C指令集中的特殊指令有SYSCALL、BREAK等。 MIPS-C指令集是一个功能强大且灵活的指令集,能够支持除浮点运算外的绝大多数定点类程序的运行。它提供了包括CP0、异常处理等指令,可以支持简单的操作系统的运行。