MIPS指令集

### MIPS指令集详解 MIPS(Microprocessor without Interlocked Pipeline Stages)是一种精简指令集计算机(RISC)架构的标准,由MIPS Technologies Inc.设计。MIPS指令集旨在简化处理器设计并提高执行效率,其指令格式清晰,易于理解和实现。 #### MIPS-C指令集概述 MIPS-C指令集是从MIPS32指令集中精选出来的常用指令集合,能够支持大多数定点运算程序,并具备了CP0寄存器的操作以及异常处理机制,为简单的操作系统运行提供支持。该指令集总共包含55条指令,按照功能被细分为九个子类。 #### 指令详解 下面将对MIPS-C指令集中的一些基本指令进行详细介绍: ##### 加载与保存指令 - **LB** (Load Byte): 加载一个带符号的字节到寄存器中。 - **操作**: `R[rt] = {24{Mem[GPR[rs] + sign_ext(offset)][7]}, Mem[GPR[rs] + sign_ext(offset)][7:0]}` - **LBU** (Load Byte Unsigned): 加载一个无符号的字节到寄存器中。 - **操作**: `R[rt] = {24'b0, Mem[GPR[rs] + sign_ext(offset)][7:0]}` - **LH** (Load Halfword): 加载一个带符号的半字到寄存器中。 - **操作**: `R[rt] = {16{Mem[GPR[rs] + sign_ext(offset)][15]}, Mem[GPR[rs] + sign_ext(offset)][15:0]}` - **LHU** (Load Halfword Unsigned): 加载一个无符号的半字到寄存器中。 - **操作**: `R[rt] = {16'b0, Mem[GPR[rs] + sign_ext(offset)][15:0]}` - **LW** (Load Word): 加载一个字到寄存器中。 - **操作**: `R[rt] = Mem[GPR[rs] + sign_ext(offset)]` - **SB** (Store Byte): 将寄存器中的低八位保存到内存地址。 - **操作**: `Mem[GPR[rs] + sign_ext(offset)][7:0] = R[rt][7:0]` - **SH** (Store Halfword): 将寄存器中的低十六位保存到内存地址。 - **操作**: `Mem[GPR[rs] + sign_ext(offset)][15:0] = R[rt][15:0]` - **SW** (Store Word): 将整个寄存器的值保存到内存地址。 - **操作**: `Mem[GPR[rs] + sign_ext(offset)] = R[rt]` ##### 算术与逻辑指令 - **ADD** (Add): 对两个寄存器的值进行带符号加法。 - **操作**: `GPR[rd] = GPR[rs] + GPR[rt]` - **ADDU** (Add Unsigned): 对两个寄存器的值进行无符号加法。 - **操作**: `GPR[rd] = GPR[rs] + GPR[rt]` - **SUB** (Subtract): 对两个寄存器的值进行带符号减法。 - **操作**: `GPR[rd] = GPR[rs] - GPR[rt]` - **SUBU** (Subtract Unsigned): 对两个寄存器的值进行无符号减法。 - **操作**: `GPR[rd] = GPR[rs] - GPR[rt]` - **AND** (And): 对两个寄存器的值进行按位与运算。 - **操作**: `GPR[rd] = GPR[rs] AND GPR[rt]` - **OR** (Or): 对两个寄存器的值进行按位或运算。 - **操作**: `GPR[rd] = GPR[rs] OR GPR[rt]` - **XOR** (Xor): 对两个寄存器的值进行按位异或运算。 - **操作**: `GPR[rd] = GPR[rs] XOR GPR[rt]` - **NOR** (Nor): 对两个寄存器的值进行按位或非运算。 - **操作**: `GPR[rd] = ~(GPR[rs] OR GPR[rt])` ##### 移位指令 - **SLL** (Shift Left Logical): 进行逻辑左移。 - **操作**: `GPR[rd] = GPR[rt] << shamt` - **SRL** (Shift Right Logical): 进行逻辑右移。 - **操作**: `GPR[rd] = GPR[rt] >> shamt` - **SRA** (Shift Right Arithmetic): 进行算术右移。 - **操作**: `GPR[rd] = GPR[rt] >>a shamt` ##### 跳转与条件指令 - **BEQ** (Branch on Equal): 如果两个寄存器的值相等,则跳转到指定地址。 - **操作**: 如果 `GPR[rs] == GPR[rt]`,则跳转。 - **BNE** (Branch on Not Equal): 如果两个寄存器的值不相等,则跳转到指定地址。 - **操作**: 如果 `GPR[rs] != GPR[rt]`,则跳转。 - **BGTZ** (Branch on Greater Than Zero): 如果寄存器的值大于零,则跳转到指定地址。 - **操作**: 如果 `GPR[rs] > 0`,则跳转。 - **BLTZ** (Branch on Less Than Zero): 如果寄存器的值小于零,则跳转到指定地址。 - **操作**: 如果 `GPR[rs] < 0`,则跳转。 - **J** (Jump): 无条件跳转到指定地址。 - **操作**: `PC = target_address` - **JAL** (Jump and Link): 无条件跳转到指定地址,并将当前PC值保存在$ra寄存器中。 - **操作**: `GPR[ra] = PC; PC = target_address` - **JALR** (Jump and Link Register): 通过寄存器的值跳转,并将当前PC值保存在另一个寄存器中。 - **操作**: `GPR[rd] = PC; PC = GPR[rs]` ##### 寄存器间指令 - **JR** (Jump Register): 通过寄存器的值进行无条件跳转。 - **操作**: `PC = GPR[rs]` ##### 特殊指令 - **BREAK** (Break): 设置断点,通常用于调试。 - **操作**: 停止执行,进入调试模式。 - **SYSCALL** (System Call): 发起系统调用。 - **操作**: 触发特定的系统服务。 - **ERET** (Exception Return): 从异常处理中返回。 - **操作**: 恢复状态并继续执行。 #### 总结 MIPS-C指令集是基于MIPS32指令集的一个子集,它包含了足够的指令来支持大多数定点运算程序,并且能够支持简单的操作系统运行。这些指令涵盖了加载与保存数据、算术与逻辑运算、条件分支、跳转等多种操作。通过合理组合这些指令,可以构建出复杂而高效的程序。对于学习和理解计算机体系结构以及编程原理来说,MIPS-C指令集是一个非常有价值的工具。












剩余23页未读,继续阅读

- fbdog2015-11-13很详细的资料,谢谢分享

- 粉丝: 0
- 资源: 1
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 线控转向系统:基于Carsim与Simulink联合仿真的控制策略与模型研究,线控转向系统:基于Carsim与Simulink联合仿真的控制策略与模型研究,线控转向系统联合仿真模型及控制策略研究 描述
- 基于python的订单管理系统
- 基于新算法SSA优化的变分模态分解风电功率分配策略:混合储能高效利用,创新性显著,基于新算法SSA优化的变分模态分解风电功率分配策略:混合储能高效利用与参数优化策略,基于新算法SSA优化变分模态分解的
- 【bussiness-DC】
- 使用BE、FE及C N方法求解一维扩散方程的Matlab实现,使用BE(向后欧拉)与FE(向前欧拉)算法及C N方法在Matlab中求解一维扩散方程的数值分析研究,使用BE(向后欧拉),FE(向前欧拉
- 博图16 PLC控制的4x5立体车库系统:包含运行效果视频、接线图及IO表全解析,4x5立体车库控制系统详解:博图16 PLC运行效果视频、接线图及IO表一览,4x5立体车库控制系统 博图16 带PL
- Python 智能机房签到系统:高效管理课堂考勤
- 进程上下文详细分析PDF原文
- 基于拉丁超立方采样与自适应核密度估计的电力系统概率潮流精准计算,基于拉丁超立方采样的电力系统概率潮流计算:自适应核密度估计与带宽优化的方法研究,采用拉丁超立方采样的电力系统概率潮流计算 (自适应核密度
- numpy-2.2.0-cp310-cp310-win32.whl
- numpy-2.2.0-cp310-cp310-win_amd64.whl
- 仅作测试无意义1111111111111111
- 基于PWM的 三色灯RGB模块调色 HAL库
- 商业数据分析BI+人工智能AI.zip
- 伺服驱动系统中的FPGA实现:电流环、速度环与位置环的协调控制,包含坐标变换及电机反馈接口,SVPWM技术,以及在FPGA中实现的编码器协议,伺服驱动FPGA电流环:实现坐标变换、电机反馈与SVPWM
- 基于PWM的 三色灯RGB模块调色 寄存器 代码


