Introdução às Linguagens de Programação/Assembly

Fonte: Wikiversidade



Assembly do Motorola MC6800

Assembly ou linguagem de montagem é uma notação legível por humanos para o código de máquina que uma arquitetura de computador específica usa. A linguagem de máquina, que é um mero padrão de bits, torna-se legível pela substituição dos valores em bruto por símbolos chamados mnemônicos. É utilizada em geral para programação em baixo nível de máquina (mais próxima do nível do hardware), sendo que cada família de processadores (Ex. X86, ARM, SPARC, MIPS) possui sua própria linguagem assembly, já que cada processador possui seu próprio conjunto de instruções embutidas.

Muitos dispositivos programáveis (como microcontroladores) ainda são programados diretamente em assembly apesar de que a partir da década de 1970 muitos dispositivos passaram a ser programados em C.


Ambiente de Linguagem[editar | editar código-fonte]

A linguagem Assembly, é intimamente ligada ao processador da CPU, dependendo inteiramente do hardware: cada processador tem, assim, sua própria linguagem Assembly (Ex. X86, ARM, SPARC, MIPS). Por essa razão Assembly não é uma linguagem portável, ao contrário da maioria das linguagens de alto nível.

Instalação[editar | editar código-fonte]

O Assembly mesmo sendo uma linguagem de baixo nível, necessita ser transformada para ser entendida pela maquina, que no caso o chamamos de Assembler. O Assembler é um utilitário que traduz os códigos para a máquina. Existem diversos compiladores Assembly no mercado que podem ser baixados pelo usuário para criação do seu código. Os principais compiladores disponíveis atualmente são: Fasm, Goasm, Masm, Nasm e Tasm entre outros.

Vantagens[editar | editar código-fonte]

  • Tamanho dos programas de Assembly são menores;
  • Assembly permite criar ações de alta complexidade, impossíveis ou difíceis de se realizar em linguagens de Alto Nível;
  • Conhecimento em Assembly possibilita a programação nos outros tipos de linguagem;
  • É um programa recomendável onde o tempo é um fator crítico como por exemplo: medições de tempo que exigem boa performance;
  • Se torna de fácil compreensão com algum conhecimento de conceitos de hardware e seus dialetos.

Desvantagens[editar | editar código-fonte]

  • Programar em Assembly consome muito tempo para o programador;
  • A linguagem é portável apenas dentro de uma família de processadores.
  • Como é uma linguagem especifica para processares de cada máquina, é necessário desenvolver um programa para cada máquina.
  • Não existe rotinas pré-definidas, o programador deverá desenvolver suas próprias rotinas.
  • A linguagem Assembly apresenta um número muito reduzido de instruções, do tipo operações de movimentação de dados em memória, para registros e para memórias, e operações lógicas e aritméticas bem simples. Estas instruções são de baixa expressividade, isto é, elas são de baixo nível. O programador deve programar num nível de detalhamento muito maior para fazer a mesma coisa que em um programa escrito em linguagem de alto nível.
  • Como o programador utiliza diretamente os recursos do processador e memória, ele deve conhecer muito bem a máquina onde ele está programando.

Referências[editar | editar código-fonte]


Writing.png Esta página é somente um esboço. Ampliando-a você ajudará a melhorar a Wikiversidade.