        # C code:
        #
        # if (x < 6) {
        #   if (x > 1) {
        #     print("x is in (1, 6)\n")
        #   } else {
        #     print("x <= 1\n")
        #   }
        # } else {
        #   print("x >= 6\n")
        # }

        .data
x_in_1_6:       
        .asciiz "x is in (1, 6)\n"
x_le_1:
        .asciiz "x <= 1\n"
x_ge_6:
        .asciiz "x >= 6\n"

        .text
main:   
        # t0: x

        # initialize our value of x
        li $t0, 0

        # check < 6
        li $t1, 6
        slt $t2, $t0, $t1
        bne $t2, $zero, less_than_6

        # fall through to else of < 6
        li $v0, 4
        la $a0, x_ge_6
        syscall
        j main_exit
        
less_than_6:
        # check x > 1 (or equivalently, 1 < x)
        li $t1, 1
        slt $t2, $t1, $t0
        bne $t2, $zero, greater_than_1

        # fall through to else of x > 1
        li $v0, 4
        la $a0, x_le_1
        syscall
        j main_exit

greater_than_1:
        # true branch of x > 1
        li $v0, 4
        la $a0, x_in_1_6
        syscall
        # could jump to main_exit, but this is what we will fall
        # through to anyways

main_exit:
        # exit the program
        li $v0, 10
        syscall
