MIPS загружает значение из массива, чтобы убедиться, что введенное значение больше - PullRequest
0 голосов
/ 02 ноября 2018

Я пишу программу сборки 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...