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 1:
Funções são ferramentas muito importantes, pois tornam código escrito muito mais usável e torna a tarefa de programar mais produtiva. Elas permitem que um programador se concentre em apeenas uma tarefa de cada vez. Portanto, é essencial que um processador possua suporte á elas. Veremos como isso ocorre no MIPS.
 
== As Etapas NeceessáriasNecessárias para Invocar Funções ==
 
Quando queremos chamar uma função, as seguintes etapas devem ser cumpridas:
Linha 20:
 
Além dos registradores convencionados acima, o registrador $r31 também tem um papel importante. Ele sempre armazena o endereço de retorno para o qual a última função chamada deve retornar. Por ter uma função tão importante, este registrador é mais conhecido pelo apelido '''$ra'''.
 
== Instruções de Uso de Funções: jal e jr ==
 
A instrução que usamos para invocar uma função chama-se '''jal''', ou ''Jump and Link''. Ela é usada da seguinte forma:
 
jal ENDEREÇO_DA_FUNÇÃO
 
Entretanto, só devemos chamar esta função depois de já termos salvo os argumentos nos registradores apropriados.
 
Depois da função executar todas as operações e salvar os resultados apropriados em $v0 e $v1, podemos usar a instrução '''jr''', ou ''Jump Register''. Normalmente usamos a instrução passando para ela o valor do registrador '''$ra''', que contém o endereço certo para voltarmos:
 
jr $ra