MIPS从数组加载值,以确保输入的值更大

时间:2018-11-02 20:53:35

标签: mips

我正在编写一个MIPS汇编程序,它将从用户那里获取5个输入并将它们存储到一个数组中。我要确保用户输入的数字大于先前输入的数字,如果不是,我想显示并显示错误消息,并且不存储该数字并允许用户继续输入值。但是,当我现在运行代码时,没有出现该错误,并且当我尝试在lw $t3, 0($t4)之前添加ble $v0, $t3, ERROR时,没有显示错误消息,并且所有值都被接受。我不知道是否有另一种方法可以在不将la $t4, values放入循环的情况下进行操作,因为那样会再次开始存储值,因此我的结果不正确。有任何想法吗?我已经在下面发布了我的代码。

.data 
    values: .space    24 # 6 * 4 = 24
    small:  .asciiz   "Value too small!! Try again.\n"
.text
MAIN:
    li $t0, 0   # i = 0
    la $t4, values
    TOP: 
        bge $t0, 5, BOTTOM
    BODY:
        li $v0, 5
        syscall

        ble $v0, $t3, ERROR

        sw $v0, 0($t4)

        add $t4, $t4, 4
        add $t0, $t0, 1
        b TOP
        ERROR:
            li $v0, 4
            la $a0, small
            syscall
            b BODY
    BOTTOM:
        li $v0, 5
        syscall

        move $t2, $v0

        li $t1, 0 # i = 0
        la $t4, values
        TEST:
            beq $t2, $t1, PRINT
        ADDITION:
            add $t4, $t4, 4
            add $t1, $t1, 1
            b TEST
        PRINT:
            lw $a0, 0($t4)
            li $v0, 1
            syscall
EXIT: 
    # Terminates the Program
    li $v0, 10
    syscall

0 个答案:

没有答案