Last active
August 31, 2018 01:51
-
-
Save williaanlopes/cf98f6e313f8725e2b3efe348232ab0c to your computer and use it in GitHub Desktop.
Saber se um número é Par ou Impar: MIPS
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
.data | |
# entrada | |
printEntrada: .asciiz "\nInforme um numero: " | |
# saida par | |
pritPar: .asciiz " eh Par!" | |
# saida impar | |
printImpar: .asciiz " eh Impar!" | |
.text | |
# funcao main | |
main: | |
#le um valor inteiro | |
li $v0,4 | |
la $a0,printEntrada # imprime mensagem printEntrada | |
syscall # chama o sistema | |
#carrega o valor | |
li $v0,5 # le o valor da entrada | |
syscall # chama o sistema | |
move $s0,$v0 # move o valor de $v0 para $s0 | |
jal par # chama a função impar | |
li $v0, 10 | |
syscall # finaliza programa | |
# fim main | |
# funcao par | |
par: | |
li $t2, 2 # divisor para a instrução div | |
div $s0, $t2 # divide o numero por 2 (quociente: LO, resto: HI) | |
mfhi $t1 # copia o resto para o registrador $t2 | |
# se o resto eh 0, então $s0 é um numero impar | |
bne $t1, 0, impar | |
# se não... | |
li $v0, 1 | |
move $a0, $s0 # move o valor de $s0 para $a0 | |
syscall # imprime o numero | |
li $v0, 4 | |
la $a0, pritPar | |
syscall # imprime mensagem par | |
jr $ra # finaliza função e retorna para o a funcao main | |
# fim funcao par | |
# funcao impar | |
impar: | |
li $v0, 1 | |
move $a0, $s0 # move o valor de $s0 para $a0 | |
syscall # imprime o numero | |
li $v0, 4 | |
la $a0, printImpar | |
syscall # imprime mensagem impar | |
jr $ra # finaliza função e retorna para o a funcao main | |
# fim funcao impar |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment