Ir para conteúdo
Entre para seguir isso  
Don flyer

Compilação, Linkediçao, Assembler .

Recommended Posts

Don flyer    0
Don flyer

Primeiro uma breve descrição do que é um Montador de assembler:MontagemA montagem é realizada para traduzir/converter um programa em linguagem de montagem (assembly) para seu equivalente em linguagem binária através do montador (assembler)O programa escrito em linguagem de montagem (código fonte) é examinado, instrução por instrução, e convertivo para um outro programa em linguagem binária (código objeto)Basicamente, as funções de um montador são:substituir os nomes simbólicos dos código de operação e operandos;Reservar espaço de memória p/ o armazenamento das instruções e dados;Converter valores de constantes p/ código binário;Examinar a correção de cada instruçãoA implementação de uma linguagem de montagem pode ser realizada em um sistema de computação optando-se por um dos 2 tipos de montadores:montador do tipo carrega e monta ou de 1 passo, oumontador do tipo de módulos ou de 2 passos.Montador de dois passosÉ um montador que lê o programa de entrada duas vezes.->primeiro passo:verifica a correção das instruçõesSe encontrar incorreção, o montador registra e o processo é interrompido;Se as instruções estiverem corretas, o montador gera as tabelas de símbolos.A cada entrada da tabela, o montador atribui o valor binário do codigo de operação, além de outros dados, como o tamanho da instrução e seus operandos, bem como a posição relativa à instrução inicial do programa.->segundo passo:o montador realiza a criação do código objeto, completando todas as entradas das tabelas.Montador de um passoo objetivo deste montador é completar a tarefa (carrega e monta) em um único passo. Para tanto, durante a avaliação de cada insrução ele vai criando entradas em um outra tabela para endereços ainda desconhecidos.Avaliando os dois tipos de montadoresMontador de 2 passos:Apesar de consumir um certo tempo devido ao fato de examinar 2 vezes todo o programa, ele produz um código de máquina direto no final da montagem.Montador de 1 passo:Não tem a mesma clareza de execução do tipo anterior, embora conceitualmente pretenda ser mais rápido.Problemas:não conclui a tarefa com um código direto e sequencialmente gerado. É preciso um rearranjo dos endereços para se inserir os que estavam desconhecidos;Se a tabela de endereços desconhecidos for grande, a busca poderá ser tão demorada quanto se estivesse realizado um 2º passo.A seguir uma breve esplicação sobre compilaçao:CompilaçãoCompilador é um programa que traduz todo o código-fonte de programas escritos numa linguagem de alto nível em código-objeto da execução do programa.O processo de compilação é mais complexo e demorado que o de montagem, pois um único comando pode gerar várias instruções de máquina.O compilador realiza uma análise do código fonte, a qual é dividida em 3 partes funcionalmente distintas:análise léxica: decompõe o programa fonte em seus elementos individuais distintos, os quais são verificados de acordo com as regras da linguagem;análise sintática: cria estruturas de cada comando, na verificação da correção dessas estruturas e na alimentação da tabela de símbolos com as informações geradas;análise semântica: verifica as regras semânticas estáticas da linguagem, produzindo mensagem de erro para as incorreçõesLigação ou linkediçãoUm código objeto gerado por um compilador não é imediatamente executável, visto que ainda há código binário a ser incluído no programa, como uma chamada às bibliotecas.Este processo de interpretação da chamada de uma rotina e a respectiva conexão do código-objeto do programa com o código-objeto da rotina chamada denomina-se ligação.Um linkeditor/ligador é um programa que reúne módulos compilados e arquivos (de dados ou de bibliotecas) para criar um programa executável.O funcionamento do programa ligador consiste em examinar todo o código objeto, gerado após a compilação, e procurar as referências externas não resolvidas. Procurando suas respectivas localizações nas bibliotecas indicadas nos comandos de execução do programa.Ao encontrar a rotina chamada em uma das bibliotecas, o ligador substitui a linha de chamada pelo código objeto da rotina.O processo de compilação e de ligação são fases distintas e independentes do procedimento global de execução de um programa e também geram produtos distintos:O código objeto ao final da compilaçãoO código executável após a ligaçãoOs códigos acima referenciados são arquivos de códigos binários que podem ser armazenados em memória secundária para uso imediato ou posterior.Há outro tipo de ligador chamado carregador ou loader que realiza a ligação e em seqüência imediata a execução do código de máquina, sem gerar o código executável permanente.InterpretaçãoPelo método de interpretação, cada comando do código fonte é lido pelo interpretador, é convertido em código executável e imediatamente executado, antes que o comando seguinte seja lido.Compilação X InterpretaçãoCompilação>>Vantagens:Usa a memória apenas por períodos definidos de tempo, economizando memória;Na ocorrência de loop, o código fonte é compilado apenas uma única vez.>>Desvantagem:A identificação de erros no programa se torna mais problemática quando o código executável entra em fase de execuçãoInterpretação>>Vantagens:Capacidade de identificar e indicar um erro no programa fonte tanto na etapa de conversão estática como na dinâmica>>DesvantagensConsumo de memória;Partes do código de um programa fonte necessitar ser interpretadas tantas vezes quantas definidas no loopEspero que isso ajude! laugh.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites
Hell Raiser    0
Hell Raiser

e lek eu axei bem manero e vo pidi pro Links aprova seu topico porque ajuda mt pro pessoal que nao manja muito de copilação e etc parabens ate eu que nao sei mt da pra entender do jeito que tu mostro mnw parabens/hb

Compartilhar este post


Link para o post
Compartilhar em outros sites
Nihzinhu    0
Nihzinhu

Eu sinceramente não li todo o tutorial, mas a parte que eu li achei muito boa, mas acho que você poderia dar uma melhor decorada utilizando negrito, sublinhados e italicos.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Linkz    0
Linkz

Como o Nihzinhu disse, poderia ser mais enfeitado, mas o conteúdo é bem satisfatório ^^Aprovado

Compartilhar este post


Link para o post
Compartilhar em outros sites
XplosioN    0
XplosioN

bom...

agora me explica como se faz cada uma dessas daí

Compartilhar este post


Link para o post
Compartilhar em outros sites
XplosioN    0
XplosioN

bom...

agora me explica como se faz cada uma dessas daí

Compartilhar este post


Link para o post
Compartilhar em outros sites
Samurai    0
Samurai

Poderia ser melhor soque ta bem esplicado...

 

aprovado

Compartilhar este post


Link para o post
Compartilhar em outros sites
higor_gremista    0
higor_gremista

Muito confuso u.Ú

nesses tipos de tuto você tem que usar bastante cores...

fLws

Compartilhar este post


Link para o post
Compartilhar em outros sites
BenGo    0
BenGo

Muito Bom o Tuto

 

Vlw's

Compartilhar este post


Link para o post
Compartilhar em outros sites
Carioca Rules    0
Carioca Rules

Na moral , muito ruim de ler , edita o tópico ae . :~

Cariok.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Striker_Sky    0
Striker_Sky

Tipo o tutorial ta bom, foi ruim pra ler todo so -.- :D

 

da uma editada o resto ta blz ...

Compartilhar este post


Link para o post
Compartilhar em outros sites
Browx    0
Browx

vlw pelo tudo ainda to começando em programçao

se tiver mais dicas boas como essa ou algum tuto pra endica manda pm

vlw ae me ajudo de verdade

abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites
Ruquan    2
Ruquan

Pra quem nao tem conhecimento em programação e muito bom xP

mais como esta nos primeiros post esta meio dificil de ler

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
Entre para seguir isso  

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×