Diferenças entre edições de "Introdução à Arquitetura de Computadores/Suporte à Funções"

addi $sp, $sp, 8 # Apague as duas variáveis locais salvas na pilha
mul $v0, $a0, $v0 # Coloque $a0 * fat($a0 - 1) como valor de retorno
jr $ra # Encerra a funçãoofunção
 
Por fim, uma última coisa útil que é interessante comentar é que o ''Stack Pointer'' ('''$sp''') pode ser alterado várias vezes ao longo de uma função. Para manter memorizado o valor do endereço da pilha no início da função, costuma-se usar o registrador $r30 como um ''Frame Pointer'' ('''$fp'''). Nos exemplos acima, isso não foi preciso, pois só mudamos o valor do ''Stack Pointer'' no começo e fim de cada função. Mas em alguns programas utilizar este registrador pode ser útil.
 
[[Categoria: Ciência da Computação]]
381

edições