Você está na página 1de 1

Reune os módulos-objeto em um único programa executável

Ligador Garante que os procedimentos estejam interligados adequadamente

Prepara o programa para ser carregado na memória principal

identificação: Nome do módulo e informações necessárias para o ligador


Reunir procedimentos traduzidos separadamente e ligá-los para formar um pragrama executável
Leitura do prgrama-fonte
Tabela de pontos de entrada: Contém a lista dos simbolos e valores que outros modulos podem referenciar

Rastreamento do endereço das instruções usando o ILC

Tabela de referências externas: Lista simbolos usados no módulo mas definidos em outros

Função da passagem 1: montar a tabela de simbolos Coleta das definições e simbolos e armazenamento em uma tabela Estrutura do módulo-objeto
Tabelas de simbolos;
pseudoinstruções;
opcodes; Instruções de maquina: Contém o código montado e as constantes
literais

Dicionário de relocação: contém informações sobre endereços que devem ser relocados, pode ser tabela de bits ou lista explicita de endereços
Calculo do comprimento da instrução e atualização do ILC Duas passagens Problema da referencia antecipada Processo de montagem LIgação e carregamento

Final: Marca de final de módulo, pode conter uma soma de verificação


Ler as informações do arquivo temporario

Escrita do programa: Os endereços absolutos são definidos no momento em que o programa é escrito.
Geração de código binário Função da passagem 2: Gerar o programa-objeto e imprimir a listagem de montagem Montagem do programa utilizando as definições da tabela

Tradução do programa: Os endereços absolutos são determinados durante a tradução do programa.


Escrita do código binário e listagem de montagem

Ligação do programa: Os endereços absolutos são determinados durante a ligação do programa, mas antes de ser carregado na memória.

Tempo de vinculação e relocação dinâmica

Carregamento do programa: Os endereços absolutos são determinados quando o programa é carregado na memória.

Carregamento de um registrador de base: Os endereços absolutos são determinados quando um registrador de base usado para endereçamento é carregado.

Execução da instrução: Os endereços absolutos são determinados quando a instrução que contém o endereço é executada.

Você também pode gostar