Skip to content

Instantly share code, notes, and snippets.

@williaanlopes
Last active August 31, 2018 01:51
Show Gist options
  • Save williaanlopes/cf98f6e313f8725e2b3efe348232ab0c to your computer and use it in GitHub Desktop.
Save williaanlopes/cf98f6e313f8725e2b3efe348232ab0c to your computer and use it in GitHub Desktop.
Saber se um número é Par ou Impar: MIPS
.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