Imagem de fundo

Em muitos casos, a pilha em memória pode ser utilizada para armazenar variáveis locais ...

Em muitos casos, a pilha em memória pode ser utilizada para armazenar variáveis locais a um procedimento quando não há registradores suficientes. O trecho da pilha contendo os registradores salvos por um procedimento e variáveis locais é chamado registro de ativação. Programas para o MIPS podem utilizar o registrador frame pointer ($fp) para apontar para a primeira palavra de um registro de ativação de um procedimento. Considerando a chamada de procedimentos aninhados no processador MIPS, assinale a alternativa correta.
A
O frame pointer ($fp) permite salvar o endereço de retorno de cada chamada do procedimento, o que é utilizado para a chamada aninhada de procedimentos.
B
Chamadas aninhadas de procedimentos sobrescrevem as variáveis locais na pilha se não for utilizado o frame pointer ($fp).
C
O frame pointer ($fp) oferece um registrador base estável em um procedimento para referência a variáveis locais, devendo ser reposicionado a cada ocorrência de chamada de procedimento aninhado.
D
Em uma chamada aninhada, o stack pointer ($sp) deve receber o valor do frame pointer ($fp), a fim de que o topo da pilha aponte para o registro de ativação.
E
O registro de ativação é o mesmo para as diferentes instâncias de um procedimento se a chamada aninhada de procedimento for recursiva.