# --- Test Case 1: Comparação simples (verdadeiro) --- # Testa se 5 (sem sinal) < 10 (sem sinal). Deve resultar em 1. li $t0, 5 # Carrega o valor 5 em $t0 sltiu $t1, $t0, 10 # $t1 = ($t0 < 10) ? 1 : 0 # VALOR ESPERADO: $t1 = 1 # --- Test Case 2: Comparação simples (falso) --- # Testa se 20 (sem sinal) < 10 (sem sinal). Deve resultar em 0. li $t0, 20 # Carrega o valor 20 em $t0 sltiu $t2, $t0, 10 # $t2 = ($t0 < 10) ? 1 : 0 # VALOR ESPERADO: $t2 = 0 # --- Test Case 3: O TESTE CRUCIAL (Número Negativo) --- # Carrega -1 (que em binário é 0xFFFFFFFF) em $t0. # Como número SEM SINAL, ele é o maior inteiro possível (4,294,967,295). # Como número COM SINAL, ele é -1. li $t0, -1 # $t0 = 0xFFFFFFFF # 3a: Teste com SLTIU (sem sinal) # A comparação é: 4,294,967,295 < 2 ? A resposta é FALSO. sltiu $t3, $t0, 2 # $t3 = ($t0 < 2 sem sinal) ? 1 : 0 # VALOR ESPERADO: $t3 = 0 # 3b: Teste com SLTI (com sinal) para provar a diferença # A comparação é: -1 < 2 ? A resposta é VERDADEIRO. slti $t4, $t0, 2 # $t4 = ($t0 < 2 com sinal) ? 1 : 0 # VALOR ESPERADO: $t4 = 1 # --- Test Case 4: Teste da EXTENSÃO DE ZERO do imediato --- # O imediato 0xFFFF (65535) deve ser estendido com zeros, não com sinal. li $t0, 0 # Carrega 0 em $t0 # 4a: Teste com SLTIU (extensão de zero) # O imediato 0xFFFF vira 0x0000FFFF (65535). A comparação é 0 < 65535 ? VERDADEIRO. sltiu $t5, $t0, 0xFFFF # $t5 = (0 < 65535) ? 1 : 0 # VALOR ESPERADO: $t5 = 1 # 4b: Teste com SLTI (extensão de sinal) para provar a diferença # O imediato 0xFFFF vira 0xFFFFFFFF (-1). A comparação é 0 < -1 ? FALSO. slti $t6, $t0, 0xFFFF # $t6 = (0 < -1) ? 1 : 0 # VALOR ESPERADO: $t6 = 0