'MIPS: Reading and displaying a character using polling

I am trying to display a single character in Mars MIPS (then eventually an entire string, but I am working on a single character for now).

.data

.text
main:
    jal emitchar
    jal LOOP
    jal LOOP2

emitchar:
    lui $t0, 0xFFFF         # $t0 stores the address of the receiver control

    jr $ra

LOOP:
    lw $t1, 0($t0)          # $t1 stores the entire 32-bits of the receiver control
    andi $t2, $t1, 0x0001       # $t2 stores the last bit (ready-bit) of the control
    beq $t2, $zero, LOOP        # if the ready-bit is 0 (not ready) loop until it is
    lw $s0, 4($t0)          # load the data into $v0

    jr $ra

LOOP2:
    lw $t1, 8($t0)          # $t1 is the address of transmitter control
    andi $t2, $t1, 0x0001       # $t2 is the ready-but of the transmitter control
    beq $t2, $zero, LOOP2       # if the ready-bit is 0 (not ready) loop until it is
    sw $s0, 12($t0)

    jr $ra

When debugging, I noticed that I am stuck in an infinite loop in the LOOP procedure. Any pointers on where to go from here?



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source