Introdução à Arquitetura de Computadores/Suporte à Funções: diferenças entre revisões

[edição não verificada][edição não verificada]
Conteúdo apagado Conteúdo adicionado
Sem resumo de edição
Linha 106:
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]]