Язык ассемблера печатается лучше, без массивов - PullRequest
0 голосов
/ 28 апреля 2020
.data 
    prompt: .asciiz "Enter a number: "
    newLine: .asciiz "\n"
    max: .asciiz "\nYour max is: "
    min: .asciiz "\nYour min is: "
    theNumber: .asciiz "Entered \n"
    average: .asciiz "\nThe average of max and min is: "
    nums: .asciiz "\nNumbers >= than average: "

.text
main: 
    li $s1, 10
    li $s0, 0
    li $t0, -10000
    li $t2, 10000

    #while loop prompt for 10 numbers
    while: 
        bgt $s0, $s1, out
        li $v0, 4
        la $a0, prompt
        syscall
        li $v0, 5
        syscall
        move $t1, $v0
        jal compareMax
        jal compareMin

        addi $s0, $s0, 1
        j while

    #prints the max and min
    out: 
        li $v0, 4
        la $a0, max
        syscall
        li $v0, 1
        move $a0, $t0
        syscall
        li $v0, 4
        la $a0, min
        syscall
        li $v0, 1
        move $a0, $t2
        syscall
        jal getAverage

    #calculate the average
    getAverage:
        li $v0, 4
        la $a0, average
        syscall
        add $t3, $t0, $t2
        div $t3, $t3, 2
        li $v0, 1
        move $a0, $t3
        syscall

    #print all numbers greater or equal to average
    GreaterEqualAvg:
        li $v0, 4
        la $v0, nums
        jal compareAverage



#exit/end program                                       
exit:
    li $v0, 10
    syscall

    #print number
    print: 
        li $v0, 4 
        la $a0, theNumber
        syscall
        li $v0, 1
        move $a0, $t1
        syscall
        jr $ra      

    #compare and get max    
    compareMax:
        bgt $t0, $t1, done
        move $t0, $t1

    #compare and get min
    compareMin:
        blt $t2, $t1, done
        move $t2, $t1   


    done:
        jr $ra

Я на 90% завершил работу с этим кодом сборки, получив 10 чисел, напечатав минимальное и максимальное значения, вычислив среднее значение. Единственное, чего не хватает, это напечатать все числа, большие или равные среднему. Если кто-то может помочь, было бы здорово!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...