11.07.2015 Views

Compiladores: PASCALjr - WWW2 - Udesc

Compiladores: PASCALjr - WWW2 - Udesc

Compiladores: PASCALjr - WWW2 - Udesc

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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Operação com RegistradoresO uso de registradores no processo de execução de instruções é interessante pois:• Operação com registrador é mais rápida• Conjunto de registradores é pequeno• Utilização eficiente = otimizaçãoDesvantagem: a ordem das instruções é muito importante no aspecto eficiência.8.1 Máquina ObjetoPara se criar um gerador de código para uma determinada máquina objeto, primeiramenteé necessário conhecer seu conjunto de instruções.Por motivos didáticos optou-se por uma máquina hipotética (MAQHIPO), que temas seguintes características:• É baseada em uma pilha;• Trabalha com os mesmos tipos de dados das fases anteriores;• Sua memória é dividida em duas partes:Área de Código contém uma lista (CODIGO) das instruções geradas pelo compilador(código de três-endereços);Área de Dados composta por uma pilha (DADOS) que conterá os registradoresmanipulados pelas instruções da máquina (só existe em tempo de execução deum programa) e uma lista (MEMO) que armazena as variáveis e constantesmanipuladas pelo programa. Para efeito de simplificação, todas as variáveisterão tamanho 1;• Possui um registrador especial (PROXINST) para a próxima instrução (na área decódigo) a ser executada, outro (TOPODADOS) que indica o topo da pilha de dadose TOPOMEMO a quantidade de memória alocada;O funcionamento da MAQHIPO é bastante simples:1. Carrega-se o programa-objeto (gerado pelo compilador) na área de código.2. Todas as instruções (indicadas pelo ponteiro PROXINST) são executadas seqüencialmenteaté a instrução de parada ou até que ocorra algum erro de execução;3. A execução de cada instrução incrementa o valor de PROXINST (exceto para instruçõesde desvio);O conjunto de instruções válidas para a MAQHIPO é:Inicialização e Finalização72

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

Saved successfully!

Ooh no, something went wrong!