assembly - 计算平均值

标签 assembly error-handling mips average qtspim

lam草
伙计们,您能帮我怎样找出错误吗?

    .data
    num1: .word 3
    num2: .word 5
    num3: .word 3
    num4: .word 3
    num5: .word 5
    num6: .word 3
    num7: .float 6.0

    xxx: .word 0
    yyy: .float 0.0

    .text
    .globl main
    .ent main
    main:
            lw $a0, num1
            lw $a1, num2
            lw $a2, num3
            lw $a3, num4
            lw $t0, num5
            lw $t1, num6
            l.s $f8, num7

            subu $sp ,$sp,8
            sw $t0 ,($sp)
            sw $t1 ,($sp)

            jal func 
            sw $v1 ,xxx
            mtc1 $v1,$f6
            cvt.s.w $f6 ,$f6

            div.s $f10 ,$f6, $f8
            s.s $f10,yyy
            addu $sp ,$sp ,8
            syscall
    .end main

    .globl func
    .end func
    func:
            subu $sp ,$sp ,4
            sw $fp , ($sp)
            addu $fp , $fp ,4
            li $v1 ,0
            add $v1 , $v1 , $a0 
            add $v1 , $v1 , $a1 
            add $v1 , $v1 , $a2
            add $v1 , $v1 , $a3
            lw $t0 ,($fp)
            add $v1 , $v1 , $t0
            lw $t1 ,4($fp)
            add $v1 , $v1 , $t1
            lw $sp , ($sp) 
            addu $sp ,$sp ,4
            jr $ra
    .end func

最佳答案

    .data
    num1: .word 3
    num2: .word 5
    num3: .word 3
    num4: .word 3
    num5: .word 5
    num6: .word 3
    num7: .float 6.0

    xxx: .word 0
    yyy: .float 0.0

    .text
    .globl main
    .ent main
    main:
            lw $a0, num1
            lw $a1, num2
            lw $a2, num3
            lw $a3, num4
            lw $t0, num5
            lw $t1, num6
            l.s $f8, num7

            subu $sp ,$sp,8
            sw $t0 ,($sp)
            sw $t1 ,($sp)

            jal func 
            sw $v1 ,xxx
            mtc1 $v1,$f6
            cvt.s.w $f6 ,$f6

            div.s $f10 ,$f6, $f8
            s.s $f10,yyy
            addu $sp ,$sp ,8
            syscall
    .end main

    .globl func
    .end func
    func:
            subu $sp ,$sp ,4
            sw $fp , ($sp)
            addu $fp , $fp ,4
            li $v1 ,0
            add $v1 , $v1 , $a0 
            add $v1 , $v1 , $a1 
            add $v1 , $v1 , $a2
            add $v1 , $v1 , $a3
            lw $t0 ,($fp)
            add $v1 , $v1 , $t0
            lw $t1 ,4($fp)
            add $v1 , $v1 , $t1
            lw $sp , ($sp) 
            addu $sp ,$sp ,4
            jr $ra
    .end func

计算6个数字的平均值

关于assembly - 计算平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61127723/

相关文章:

C 函数到 MIPS

mips - 如何在 MIPS 中测试整数乘法溢出?

VBA 错误处理查询

C 到 MIPS 汇编

assembly - nasm 中的标签偏移量

macos - Mac 上的汇编和 Linux 上的汇编有什么区别?

list - F# 匹配模式鉴别器未定义问题

error-handling - UI 测试失败,错误为 "Failed to get snapshot within 15.0s"

汇编:使用两个 32 位寄存器中的值进行除法,就好像它们是一个 64 位整数一样

java - 如何使用-XX :+UnlockDiagnosticVMOptions -XX:CompileCommand=print option with JVM HotSpot