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

如何在MIPS汇编中获取除法余数?将t3与t8余数存入t1

MIPS汇编实现寄存器取余并存入指定寄存器

对于刚接触MIPS的新手,不用纠结复杂的特殊寄存器,用MIPS原生的除法指令就能轻松完成需求,步骤非常简单:

核心思路

MIPS的除法指令会自动把除法结果的商存入特殊寄存器$lo,余数存入特殊寄存器$hi,你只需要把$hi里的余数转移到t1即可,全程只用到你熟悉的t3、t8和两个专门存除法结果的简单特殊寄存器。

代码实现(有符号除法)

# 计算$t3 ÷ $t8的余数,将余数存入$t1
div $t3, $t8   # 执行有符号除法:被除数$t3,除数$t8,余数自动存入$hi
mfhi $t1       # 把$hi中的余数复制到目标寄存器$t1

代码解释

  • div $t3, $t8:这条指令完成除法运算,无需手动配置其他寄存器,硬件会自动分配结果位置:余数进$hi,商进$lo。
  • mfhi $t1:mfhi是"Move From HI"的缩写,功能就是把$hi里的内容转移到指定寄存器,这里就是把余数放到t1里。

无符号除法的情况

如果你的寄存器里存的是无符号数(非负数),可以用divu指令替代div,操作逻辑完全一致:

# 无符号除法取余
divu $t3, $t8  # 执行无符号除法,余数存入$hi
mfhi $t1

注意事项

  • 确保除数$t8的值不为0,否则会触发CPU异常。
  • 有符号除法中,余数的符号会和被除数$t3保持一致,这是MIPS的默认规则。

内容的提问来源于stack exchange,提问作者Burcu Sultan Orhan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 13:20:35