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

2024-01-09 16:33:29

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)。每个字段都有特定的位数和位置,这些位组合起来定义了指令的操作和操作数。

文章来源:https://blog.csdn.net/weixin_46160781/article/details/135482690
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。