+ la $a0, input_value # Store the answer
+ li $a1, 5
+ li $v0, 8 # Load syscall read_string
+ syscall # Make the syscall
+
+# check that each input values are in the right range
+check_input:
+ la $t7, input_value
+
+ lb $t5, 0($t7)
+ andi $t5, $t5, 0x0F # ASCII code to integer
+ beq $t5, $zero, input
+ addi $t5, $t5, -9
+ bgez $t5, input
+
+ lb $t5, 1($t7)
+ andi $t5, $t5, 0x0F # ASCII code to integer
+ beq $t5, $zero, input
+ addi $t5, $t5, -9
+ bgez $t5, input
+
+ lb $t5, 2($t7)
+ andi $t5, $t5, 0x0F # ASCII code to integer
+ beq $t5, $zero, input
+ addi $t5, $t5, -9
+ bgez $t5, input
+
+ lb $t5, 3($t7)
+ andi $t5, $t5, 0x0F # ASCII code to integer
+ beq $t5, $zero, input
+ addi $t5, $t5, -9
+ bgez $t5, input
+
+ la $s2, ($zero) # Same counter
+ la $s3 ($zero)
+compare_input:
+ la $t7, input_value
+ la $t6, guess_value
+ la $t5, O
+ la $t4, X
+ la $t3, tiret
+
+ lb $t0, 0($t7)
+ andi $t0, $t0, 0x0F # ASCII code to integer
+ lb $t1, 0($t6)
+ beq $t0, $t1, same1
+ j different1
+same1:
+ sb $0, 0($t7)
+ sb $t5, 0($s1)
+ addi $s2, $s2, 1
+different1:
+ lb $t0, 1($t7)
+ andi $t0, $t0, 0x0F # ASCII code to integer
+ lb $t1, 1($t6)
+ beq $t0, $t1, same2
+ j different2
+same2:
+ sb $zero, 1($t7)
+ sb $t5, 1($s1)
+ addi $s2, $s2, 1
+different2:
+ lb $t0, 2($t7)
+ andi $t0, $t0, 0x0F # ASCII code to integer
+ lb $t1, 2($t6)
+ beq $t0, $t1, same3
+ j different3
+same3:
+ sb $zero, 2($t7)
+ sb $t5, 2($s1)
+ addi $s2, $s2, 1
+different3:
+ lb $t0, 3($t7)
+ andi $t0, $t0, 0x0F # ASCII code to integer
+ lb $t1, 3($t6)
+ beq $t0, $t1, same4
+ j different4
+same4:
+ sb $zero, 3($t7)
+ sb $t5, 3($s1)
+ addi $s2, $s2, 1
+different4:
+ beq $s2, 4, won
+
+
+print_comp_result:
+ la $a0, newline
+ li $v0, 4
+ syscall
+ la $a0, ($s0)
+ li $v0, 1
+ syscall
+ la $a0, exclamation_point
+ li $v0, 4
+ syscall
+ la $a0, ($s2)
+ li $v0, 1
+ syscall
+ la $a0, temp_msg
+ li $v0, 4