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
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
|