A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Arquitetura ARM Subrotinas.  Implementar uma sub-rotina requer dois passos: 1.Armazenar o endereço de retorno. 2.Desviar a execução para o endereço da.

Apresentações semelhantes


Apresentação em tema: "Arquitetura ARM Subrotinas.  Implementar uma sub-rotina requer dois passos: 1.Armazenar o endereço de retorno. 2.Desviar a execução para o endereço da."— Transcrição da apresentação:

1 Arquitetura ARM Subrotinas

2  Implementar uma sub-rotina requer dois passos: 1.Armazenar o endereço de retorno. 2.Desviar a execução para o endereço da sub-rotina.  Quem executa esses dois passos: instrução BL label Armazena endereço de retorno em LR (R14). A execução é desviada para a posição de memória identificada por “label”.  O retorno da sub-rotina se dá pela instrução BX LR, a qual carrega no registrador PC o conteúdo de LR. Problema! Onde?

3 Subrotinas ENDEREÇO DE RETORNO DA SUBROTINA! 11MOV R1,R2 12BL SUB1 13... 14 20SUB1:... 21BL SUB2 22... 23BX LR 40SUB2:... 41... 42BX LR 43 1322 R14(LR) Como solucionar? Por exemplo, uso da Pilha!

4 Subrotinas Passagem de Parâmetros Por Registradores Por Pilha Por valor Por Referência Como os dados são enviados para a subrotina? Não altera o conteúdo da memória Altera o conteúdo da memória

5 Subrotinas São instruções simbólicas, não executáveis, que auxiliam o montador a determinar o conteúdo da memória ao instalar o programa assembly. x:.word 5000 LDR R2, =x LDR R1,[R2] Para que a passagem de parâmetros efetivamente ocorra, é possível recorrer a pseudoinstruções. Pseudoinstruções Cria uma palavra na memória cujo conteúdo é 5000 Armazena o endereço da palavra “x” em R2 Armazena o valor de x em R1

6 Subrotinas - É passado o endereço de memória que contém o dado. x:.word 5000 LDR R2, =x Por valor Passagem de Parâmetros Por Referência - É passado o dado da memória. x:.word 5000 LDR R2, =x LDR R3, [R2]

7 Subrotinas Passagem de Parâmetros x:.word 5000 y:.word 0 LDR R0, =x LDR R1, =y LDR R0, [R0] BL SOMA STR R0, [R1] Por Registrador SOMA: ADD R0, R0, #1 BX LR Exemplo: Subrotina que faz uma soma

8 Subrotinas Passagem de Parâmetros Por Pilha Dados são passados do programa para sub-rotina e vice-versa através da pilha Mas como é a pilha no ARM? Desafio


Carregar ppt "Arquitetura ARM Subrotinas.  Implementar uma sub-rotina requer dois passos: 1.Armazenar o endereço de retorno. 2.Desviar a execução para o endereço da."

Apresentações semelhantes


Anúncios Google