Как напечатать ввод и вывод в одной строке в пределах для l oop (сборка MIPS) - PullRequest
0 голосов
/ 14 апреля 2020

Итак, я пишу MIPS-программу, скрывающую по Фаренгейту (ввод с клавиатуры) в вывод по Цельсию. Большая часть алгоритма обратного кодирования в основном закончена, но у меня проблема в том, что я не могу напечатать ввод и вывод в одной строке. Вывод, который я хочу:

Fahrenheit     Celcius
    x1            y1
    x2            y2 
          ....

Вместо этого я получил:

Fahrenheit     Celcius
    x1
                y1
    x2
                y2

Так что это действительно меня расстраивает. Пожалуйста, помогите мне



main:


    la $a0, fInput      # message for input Fahrenheit
    li $v0, 4
    syscall

    la $a0, tab     #blankspace
    li $v0, 4
    syscall

    la $a0, Cmess       # Celcius message
    li $v0, 4
    syscall


    li $s0, 11      #call 20
    li $s1, 0       #call counter i

    loop:
    beq $s1, $s0, end

    li $v0, 5       #user input Fahrenheit
    syscall


    move $t0, $v0   

    jal celcius
    move $t4, $t3       #t4 = C now 

    la $a0, tab     #blankspace
    li $v0, 4
    syscall

    li $v0,1        #print Celcius result
    move $a0, $t4
    syscall


    la $a0, newline     #newline
    li $v0, 4
    syscall

    addi $s1, $s1, 1    # i++
    j loop

    end:
    li $v0, 10
    syscall


celcius:

    sub $t1, $t0, 32            #F - 32 
    mul $t2, $t1, 5             #5*(F-32)
    div $t3, $t2, 9             #C = (5*(F-32))/9   t3 = C

    jr $ra


.data
    fInput: .asciiz "Fahrenheit: "
    Cmess: .asciiz "Celcius: \n"
    newline: .asciiz " \n"
    tab: .asciiz "     "
    word: .space 51

...