quinta-feira, 16 de agosto de 2012

Linguagem Assembly



A linguagem de máquina de cada processador é acompanhada de uma versão legível da linguagem de máquina que é chamada simbólica. A linguagem Asslembly é uma versão legível da linguagem de máquina utilizando palavras abreviadas chamadas mnemônicos, indicando que operação o processador deve realizar.


Exemplos de Instruções Assembly:

  • MOV R1,R2:mnemônico MOV (abreviação de MOVE) e dois registradores como parâmetro: R1 e R2., quando o processador efetua essa instrução ele comanda  o movimento do conteúdo R2 para R1. No Pascal : R1: = R2.
  • ADD R1,R2:Mnemônico ADD e dois registradores como parâmetro: R1 e R2. Quando o processador efetua  essa instrução ele comanda a adição do conteúdo de R1 ao conteúdo de R2 e o resultado é armazenado.




A linguagem Assembly facilitou significativamente a leitura de sequências de instruções de máquina. A linguagem Assembly é apenas uma versão legível da linguagem de máquina, a passagem de um programa escrito em Assembly para a linguagem de máquina é quase sempre direta, não envolvendo muito processamento. Essa passagem é chamada de montagem, e o programa que realiza esta operação é chamado de montador (Assembler). A linguagem Assembly é orientada para a máquina (ou melhor, para processador), é necessário conhecer a estrutura do processador para poder programar em Assembly. Essa linguagem utiliza instruções de baixo nível que operam diretamente com registros e memórias, ou seja, as instruções são diretamente executadas pelo processador.
Seguindo a evolução das linguagens de programação
se aproximou mais a linguagem de programação à linguagem natural . Surgiram então, as linguagens de alto nível, com o Pascal, C, C++, etc.


Vantagens:


  • Permite acesso direto ao programa de máquina. Utilizando uma linguagem de alto nível não se tem o controle de código de máquina gerado pelo compilador. Um programa escrito em linguagem Assembly pode ser de 0 a 300% menor e mais rápido que um programa compilado;
  • Essa linguagem permite o controle total do hardware.


Desvantagens:

  • A linguagem apresenta um número muito reduzido de instruções;
  • O programador deve conhecer muito bem a máquina;
  • O programa Assembly não é muito legível, precisa ser bem documentado;
  • O programa Assembly não é portável (pode ser usado apenas em um tipo de computador). É portável apenas dentro de uma família de processadores;
  • A programação Assembly tem um custo de desenvolvimento maior.


Aplicações da linguagem Assembly:


  • Controle de processos com resposta em tempo real.Nesse tipo de aplicação o processador deve executar um conjunto de instruções em um tempo limitado;
  • Comunicação e transferência de dados. Nesse tipo de aplicação é utilizada a linguagem Assembly, devido a possibilidade de acessar diretamente o hardware;
  • Otimização de sub-tarefas da programação de alto nível.

Um programa não precisa somente ser escrito em linguagem Assembly ou linguagem de alto nível. Podemos ter programas de alto nível com sub-tarefas escritas em Assembly, para o caso de tarefas tempo-real ou para a programação do hardware do computador.



2 comentários: