11.07.2015 Views

Compiladores: PASCALjr - WWW2 - Udesc

Compiladores: PASCALjr - WWW2 - Udesc

Compiladores: PASCALjr - WWW2 - Udesc

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Comando de AtribuiçãoARMZ n Transporta o conteúdo do topo da pilha para o endereço de memória n.{Memo[n] = Dados[T opoDados − −]; }Comandos Condicionais e IterativosDSVF p Desvio se condicional falso para a instrução p.{P roxInst = Dados[T opoDados]?P roxInst + 1 : p; }DSVI p Desvio incondicional para a instrução p. {P roxInst = p; }EXEC n Executa a chamada a uma sub-rotina com inicio na instrução n e empilha oendereço de retorno{Desvios[+ + T opoDesvio] = P roxInst + 1; P roxInst = n; }RETR Retorna a execução para a próxima instrução após a chamada à sub-rotina{P roxInst = Desvios[T opoDesvio − −]; }Exemplo de Geração de Código Objeto na Linguagem Hipo:Programa FontePrograma ObjetoVar: inteiro F, N; 01 INIP02 ALME 1 i03 ALME 1 iInicioLeia(N); 04 ENTR05 ARMZ 1F=1; 06 CRCT 1 i07 ARMZ 0Enquanto N >= 1 faca Inicio 08 CRVL 1 i09 CRCT 1 i10 CPMA11 DSVF 21F ∗ = N; 12 CRVL 0 i13 CRVL 1 i14 MULT15 ARMZ 0N − −; 16 CRVL 1 i17 CRCT 1 i18 SUBT19 ARMZ 1Fim 20 DSVI 8Escreva(F); 21 CRVL 0 i22 IMPRFim 23 FIMP75

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!