0
.data
prompt: .asciiz "Enter in 3 integers, one per line, last one being a negative number: "
sum:    .asciiz "The sum is: "
min:    .asciiz "The minimum is: "
max:    .asciiz "The maximum is: "
mean:   .asciiz "The mean is: "
variance:   .asciiz "The variance is: "
newline:    .asciiz "\n"
count:    .word 3
array:    .space 12
.text
main:
    #prints prompt msg
    li    $v0, 4
    la    $a0, prompt
    syscall

    #takes first integer from user and stores into $t1
    li    $v0, 5
    syscall
    move     $t1, $v0


    #takes second integer from user and stores into $t2
    li    $v0, 5
    syscall
    move     $t2, $v0


    #takes third integer from user and stores into $t3
    li    $v0, 5
    syscall
    move    $t3, $v0


    #min/max utilizing array
    la    $t0, array        #initializing array at a[0]
    li    $t4, 0            #min
    li    $t5, 0            #max
    li    $t6, 0            #i
    li    $t7, 0
    sw    $t1, 4($t0)        #user first input stored in a[1]
    sw    $t2, 8($t0)        #user second input stored in a[2]
    sw    $t3, 12($t0)        #user third input stored in a[3]


blt $t1, $t2, Else
ble $t1, $t3, Else2
j T1P

Else:
    blt $t2, $t3, Else2
    j T2P

Else2:
    blt $t3, $t2, T3P

T1P:
    move $a0, $t1
    li   $v0, 1
    syscall

T2P:
    move $a0, $t2
    li   $v0, 1
    syscall

T3P:
    move $a0, $t3
    li   $v0, 1
    syscall

わかりました、私がやろうとしているのは、ユーザーが入力した 3 つの整数から最小値を見つけることです。

プログラムが実行され、ユーザーが 3 つの整数を入力できるようになります。

何が起こっているかというと、最小値を出力する代わりに、3 つの値すべてを出力しています。

blt $t1, $t2, Else
    ble $t1, $t3, Else2
    j T1P

    Else:
        blt $t2, $t3, Else2
        j T2P

    Else2:
        blt $t3, $t2, T3P

    T1P:
        move $a0, $t1
        li   $v0, 1
        syscall

    T2P:
        move $a0, $t2
        li   $v0, 1
        syscall

    T3P:
        move $a0, $t3
        li   $v0, 1
        syscall

これは、どの値が最小であるかをチェックすることになっているコードのセクションですが、そうではありません。

3 つの整数すべてが出力される理由がわかりません。私のエラーチェックは、3 つの整数すべてが出力されないようにしていると思いました。このプログラムを QTSPIM で実行しています。

例: ユーザーは 4 、 3 、および 2 を 3 つの int として打ち込みます。コンソールは、最小の int を出力するだけでなく、4、3、および 2 を表示しています。

4

1 に答える 1