You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于jr $ra机器码及R型、J型指令机器码的技术问询

问题解答

1. jr $ra对应的机器码

jr是MIPS架构的R型指令,指令格式为:op(6位) | rs(5位) | rt(5位) | rd(5位) | shamt(5位) | funct(6位)

  • op:R型指令固定为000000
  • rs:$ra是寄存器31,对应二进制11111
  • rt、rd、shamt:jr指令无需使用这些字段,全部设为00000
  • funct:jr的功能码固定为001000

拼接后的二进制机器码为00000011111000000000000000001000,转换成十六进制是0x03E00008

2. jr指令的寄存器字段及J型机器码编写方法

寄存器字段说明

jr指令仅用到rs寄存器(即你提到的源寄存器11111,对应$ra),其余字段:

  • 额外源寄存器rt:00000(无实际功能,固定设为0)
  • 目标寄存器rd:00000(jr无目标寄存器,固定设为0)
    同时shamt字段也固定为00000,功能码funct为001000

J型操作的机器码编写步骤

J型指令格式为:op(6位) | 目标地址偏移(26位)
具体操作步骤:

  1. 确定J型指令的操作码op:比如普通跳转j的op是000010,跳转并链接jal的op是000011
  2. 计算地址偏移:
    • 获取目标指令的绝对地址
    • 用该地址减去当前指令执行时的PC+4(MIPS流水线预取下一条指令的地址),得到偏移量
  3. 对偏移量右移2位:因MIPS指令是4字节对齐,地址低两位恒为0,右移后保留有效地址部分
  4. 取右移后偏移量的低26位作为指令的地址字段
  5. 将6位op码与26位地址字段拼接,得到最终的J型机器码(通常转成十六进制用于存储)

内容的提问来源于stack exchange,提问作者user21366160

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 09:20:07