【问题标题】:QTSPIM telling me c.gt.s $f0, $f1 has syntax error (pointing to .s)QTSPIM 告诉我 c.gt.s $f0, $f1 有语法错误(指向 .s)
【发布时间】:2020-04-19 01:52:04
【问题描述】:

这是我的代码,在 c.gt.s $f0, $f1 有一个指向 s 的语法错误,但它是一个单精度浮点数,所以它需要是 c.gt.s。我在这里做错了什么?

.data 

numA: .float 10.5
numB: .float 12.3

.text
.globl main
main:
    la $t0, numA
    la $t1, numB
    lwc1 $f0, 0($t0)
    lwc1 $f1, 0($t1)
    c.gt.s $f0, $f1
    bc1t swap
    li $v0, 10
    syscall

swap:
    swc1 $f0, 0($f3) #f3 is temp
    swc1 $f1, 0($f0)
    swc1 $f3, 0($f0)
    jr $ra

【问题讨论】:

    标签: mips qtspim


    【解决方案1】:

    我找到了解决方法。不知道为什么 c.gt.s 不起作用,但 c.lt.s 起作用了,而且 lwc1 和 swc1 必须分别与 l.s 和 mov.s 交换。

    .data 
    
    numA: .float 12.5
    numB: .float 10.3
    
    .text
    main:
        l.s $f0, numA
        l.s $f1, numB
        c.lt.s $f1, $f0
        bc1t swap
        li $v0, 10
        syscall
    
    swap:
        mov.s $f3, $f0 #f3 is temp
        mov.s $f0 $f1
        mov.s $f1, $f3
        li $v0, 10
        syscall
    

    【讨论】:

    • 浮点比较没有GT 条件。有NGT 可以与BC1F 结合做一个“如果Grater Than”的分支。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-14
    • 1970-01-01
    相关资源
    最近更新 更多