一个简单的MIPS-常见MIPS指令

ALU操作

这些指令用于执行算术和逻辑操作:

  • ADDU(无符号加法):将寄存器 rs 和 rt 的内容相加,结果存储在 rd 寄存器中。
  • SUBU(无符号减法):从寄存器 rs 减去寄存器 rt 的内容,结果存储在 rd 寄存器中。
  • SLT(设置小于):如果寄存器 rs 的内容小于寄存器 rt 的内容,则 rd 寄存器设置为1,否则设置为0。
  • SLTU(无符号设置小于):类似 SLT,但比较是按无符号数进行的。
  • AND:对寄存器 rs 和 rt 的内容进行位与操作,结果存储在 rd 寄存器中。
  • OR:对寄存器 rs 和 rt 的内容进行位或操作,结果存储在 rd 寄存器中。
  • XOR:对寄存器 rs 和 rt 的内容进行位异或操作,结果存储在 rd 寄存器中。
  • NOR:对寄存器 rs 和 rt 的内容进行位或非操作,结果存储在 rd 寄存器中。
  • SLLVSRLVSRAV:分别表示逻辑左移、逻辑右移和算术右移,移动的位数由寄存器 rt 指定,源数据来自寄存器 rs,结果存储在 rd 寄存器中。

访存操作

  • LW(Load Word):从内存加载一个字到寄存器 rt 中,地址由基址寄存器 base 和偏移量 offset 确定。
  • SW(Store Word):将寄存器 rt 的内容存储到内存中,地址由基址寄存器 base 和偏移量 offset 确定。

分支操作

  • BEQ(Branch if Equal):如果寄存器 rs 和 rt 的内容相等,则跳转到指定的偏移量 offset 处。
  • BNE(Branch if Not Equal):如果寄存器 rs 和 rt 的内容不相等,则跳转到指定的偏移量 offset 处。
  • BLEZ(Branch if Less than or Equal to Zero):如果寄存器 rs 的内容小于或等于零,则跳转到指定的偏移量 offset 处。
  • BGTZ(Branch if Greater than Zero):如果寄存器 rs 的内容大于零,则跳转到指定的偏移量 offset 处。

这些指令的编码包括操作码(op)、寄存器指示(rs、rt、rd)、立即数(immediate)、基址(base)和偏移量(offset)。每个字段都有特定的位数和位置,这些位组合起来定义了指令的操作和操作数。

  • 14
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北纬40度~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值