subrotinas n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Subrotinas PowerPoint Presentation
Download Presentation
Subrotinas

Loading in 2 Seconds...

play fullscreen
1 / 15

Subrotinas - PowerPoint PPT Presentation


  • 119 Views
  • Uploaded on

Subrotinas. (Como implementar multiplicação e divisão uma vez só :-). Características. Função utilizada várias vezes Somente necessita ser codificada uma vez Vários pontos do programa de onde a rotina é “chamada” Vários pontos para onde a rotina deve “retornar”

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Subrotinas' - eman


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
subrotinas

Subrotinas

(Como implementar multiplicação e divisão uma vez só :-)

caracter sticas
Características
  • Função utilizada várias vezes
  • Somente necessita ser codificada uma vez
  • Vários pontos do programa de onde a rotina é “chamada”
  • Vários pontos para onde a rotina deve “retornar”
  • Rotina deve sempre retornar ao “ponto de chamada” correto
chamada de uma rotina
Chamada de uma rotina
  • Corresponde a um desvio do programa principal para o início da rotina
  • Imediatamente antes do desvio, PC aponta para o “ponto de retorno” (instrução seguinte)
  • Este valor do PC deve ser armazenado, para possibilitar o retorno correto
  • Problema: onde guardar o “ponto de retorno” ?
armazenamento do ponto de retorno
Armazenamento do ponto de retorno
  • Em um registrador especial (por exemplo, RR, o “registrador de retorno”
  • Desvio: RR  PC, PC  endereço
  • Retorno: PC  RR
  • Vantagem: simplicidade
  • Desvantagens:
    • Sem aninhamento
    • Sem recursividade
armazenamento do ponto de retorno1
Armazenamento do ponto de retorno
  • Em um endereço especial (por exemplo, o primeiro byte da sub-rotina
  • Desvio:

mem[endereço]  PC

PC  endereço + 1

  • Retorno:

PC  mem[endereço] ; (o mesmo do desvio !)

  • Vantagem: permite aninhamento
  • Desvantagem: sem recursividade
armazenamento do ponto de retorno2
Armazenamento do ponto de retorno
  • Em uma estrutura especial (por exemplo, uma pilha)
  • Desvio:

mem[topo da pilha]  PC

PC  endereço

  • Retorno:

PC  mem[topo da pilha] ; (o mesmo do desvio !)

  • Vantagem:
    • com aninhamento
    • com recursividade
  • Desvantagem: gerência da pilha
ramses subrotinas
Ramses - subrotinas
  • utiliza o primeiro byte da rotina
  • primeiro byte deve ser reservado ! (NOP)
  • instrução JSR guarda PC de retorno neste byte
  • primeira instrução começa no byte seguinte
  • retorno feito de forma especial (JMP end,I)
  • exemplo: se rotina está no endereço 100
    • desvio: JSR 100
    • retorno: JMP 100,I
passagem de par metros
Passagem de parâmetros
  • Por registradores
  • Por posições de memória
  • Exemplo: multiplicação
    • Programa principal usa três posições:
      • primeiro_operando
      • segundo_operando
      • resultado
    • Subrotina usa outras três posições:
      • op1
      • op2
      • resul
passagem de par metros1
Passagem de parâmetros
  • Por registradores
passagem de par metros2
Passagem de parâmetros
  • Por posições de memória
passagem de par metros3
Passagem de parâmetros
  • Por posições de memória
passagem de par metros4
Passagem de parâmetros
  • Por registradores
    • Uso limitado pela quantidade de registradores disponíveis
  • Por posições de memória
    • Localização dos parâmetros na memória depende de convenção estabelecida entre programa principal e subrotina
  • Por pilha

(aguardem o CESAR)