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

MIPS汇编浮点数比较后bc1t始终跳转异常问题求助

问题修复指导
  • 第一个错误:浮点输入存储逻辑错误
    MIPS中syscall 6读取单精度浮点数的返回值存放在浮点寄存器$f0,而非通用寄存器$v0,你当前用sw $v0, estimate存储的是无效值,导致后续比较的estimate全程为垃圾数据,逻辑自然不符合预期。
    正确存储代码:
#get user input
li $v0, 6
syscall
# 存储浮点寄存器中的输入值
swc1 $f0, estimate
  • 第二个错误:跳转目标标签写错
    你条件判断后用bc1t MSG2指定跳转目标,但你的代码中输出MSG2的标签是displayMSG2,MSG2是字符串的内存地址,直接跳转至该位置执行会触发未知错误。

  • 第三个错误:条件跳转指令与需求不匹配
    你的需求是$f0 < $f1不成立时跳转输出MSG2,c.lt.s $f0, $f1会在$f0 < $f1成立时将条件标记置为真,bc1t是条件为真时跳转,和你的需求完全相反,应该用bc1f(条件为假时跳转)。同时要注意执行完MSG2输出后也要加退出逻辑,避免代码跑飞。
    调整后的判断逻辑代码:

c.lt.s $f0, $f1
# $f0 < $f1 不成立时跳转到displayMSG2
bc1f displayMSG2

li $v0, 4
la $a0, MSG1
syscall
li $v0, 10
syscall 

displayMSG2:  
li $v0, 4
la $a0, MSG2
syscall
# 此处添加退出逻辑,避免执行非法后续代码
li $v0, 10
syscall

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 10:12:02