Conceito de Linguagem Assembly
Por vezes chamada de assembly ou ASL, a linguagem assembly é uma linguagem de baixo nível de programação usada para a interface com o hardware do computador. A linguagem assembly usa comandos estruturados em vez de números e permite que os programadores consigam ler mais facilmente o código. Embora o código assembly seja mais fácil de ler do que o código binário, a linguagem assembly é uma línguagem difícil e geralmente é substituída por uma linguagem mais elevada tal como a linguagem de programação C.
A linguagem assembly implementa uma representação simbólica do código de máquina necessário para programar uma determinada arquitetura de CPU. Ela é, também, conhecida como código assembly. O termo é frequentemente usado também como sinónimo de 2GL.
A linguagem assembly é a linguagem de programação mais básica disponível para qualquer processador. Com a linguagem assembly, um programador funciona apenas com operações que são implementadas diretamente na CPU física.
As linguagens assembly geralmente não possuem conveniências de alto nível, como variáveis e funções, e elas não são portáteis entre várias famílias de processadores. Ela tem as mesmas estruturas e conjunto de comandos como linguagem de máquina, mas permite que um programador use nomes em vez de números. Esta linguagem ainda é útil para os programadores quando a velocidade é necessária ou quando eles precisam realizar uma operação que não é possível em linguagens de alto nível.
História da linguagem assembly
A história das linguagens assembly está intimamente ligada à do programa armazenado no computador. Quando o EDSAC (Electronic Delay Storage Automatic Calculator – um dos primeiros computadores fabricados no Reino Unido) foi incorporado com um assembler, que usava a mnemónica (auxiliar de memória) em 1949. Stan Poley escreveu o Programa de Montagem Óptica Simbólica ou SOAP (Symbolic Optimal Assembly Program) para o computador IBM 650 em 1955.
As linguagens assembly começaram a ser usadas amplamente, pois aliviam os programadores de tarefas tediosas, como por exemplo, lembrar de códigos numéricos. O seu uso, entretanto, foi reduzido substancialmente nos anos 80 devido à introdução de linguagens de programação de alto nível.
Ao longo da história, muitos programas foram escritos completamente em linguagem assembly. Esta tendência foi alterada com a introdução do MCP Burroughs em 1961, que foi escrito em ESPOL, uma linguagem baseada no Algol. Além disso, muitas aplicações comerciais também foram escritas com o uso de linguagens assembly, tais como, grandes quantidades de software mainframe da IBM.
Os microcomputadores, nos seus estágios iniciais, dependiam principalmente de linguagens assembly codificadas manualmente. Isso deveu-se à falta de compiladores de linguagem de alto nível destinados a serem usados em microcomputadores. Outra razão pode derivar do facto das linguagens assembly na época terem muitas vantagens, como um tamanho reduzido, alta velocidade, menos sobrecarga e alta confiabilidade.
Durante esse período, muitos programas grandes foram escritos em linguagens assembly, incluindo os sistemas operativos Lotus 1-2-3 e o IBM PC DOS. Muitos jogos de vídeo também foram escritos em linguagens assembly, mesmo durante a década de 1990. O jogo NBA Jam, é um desses jogos da época (1993). A maioria dos computadores do período entre 1980 e 1990 foram desenvolvidos principalmente por linguagens assembly. Os exemplos incluem o Atari ST e os sistemas MSX daquele tempo.