O termo assembler designa um programa de computador que converte programas escritos em assembly language, que podem ser lidos pelas pessoas, para código de máquina executável. Um assembler é um programa que pega nas instruções básicas de informática e as converte num padrão de bits que o processador do computador pode usar para executar as suas operações básicas. Algumas pessoas chamam a essas instruções de linguagem assembler e outros usam o termo linguagem assembly.
Como funciona:
- A maioria dos computadores vêm com um determinado conjunto de instruções muito básicas que correspondem às operações básicas da máquina que o computador pode executar. Por exemplo, uma instrução de “Load” faz com que o processador mova uma sequência de bits a partir de uma localização na memória do processador para um local de armazenamento especial chamado de registo. Assumindo que o processador tem pelo menos oito registos, cada uma delas numeradas, a seguinte instrução seria mover o valor (string de bits de um determinado tamanho) na localização de memória 3000, para o lugar em espera chamado de registo 8.
- O programador pode escrever um programa usando uma sequência dessas instruções assembler.
- Esta sequência de instruções assembler, conhecido como código fonte ou programa de origem, é então especificado para o programa assembler quando o programa for iniciado.
- O programa assembler leva cada instrução do programa, no programa de origem e gera um fluxo de bits correspondente ou padrão (uma série de 0s e 1s de um determinado comprimento).
- O código de saída do programa assembler é chamado de código de objecto. A sequência de 0 e 1 do que constituem o programa objeto é às vezes chamado de código de máquina.
- O programa objeto pode então ser executado sempre que desejar.
Nos primeiros computadores, os programadores realmente escreveram os programas em código de máquina, mas as linguagens assembler ou conjuntos de instruções foram desenvolvidas para acelerar a programação. Hoje, a programação assembler é usada apenas quando é necessário um controlo muito eficiente ao longo das operações do processador. No entanto, ele requer conhecimento do conjunto de instruções de um computador específico. Historicamente, a maioria dos programas foram escritos em linguagens “alto nível”, tais como o COBOL, Fortran, PL / I e C. Estas linguagens são mais fáceis de aprender e mais rápidas para escrever os programas que a linguagem assembler. O programa que processa o código-fonte escrito nessas línguas é chamado de compilador. Tal como o assembler, um compilador leva instruções da linguagem de alto nível e os reduz a código de máquina.
A ideia mais recente na preparação do programa e da portabilidade é o conceito de uma máquina virtual. Por exemplo, usando a linguagem de programação Java, as instruções da linguagem são compiladas numa forma genérica da linguagem de máquina conhecida como bytecode que pode ser executada por uma máquina virtual, uma espécie de máquina teórica que se aproxima da maioria das operações do computador. A máquina virtual está ciente dos comprimentos das instruções específicas e outras particularidades da plataforma e garante que o bytecode Java possa ser executado.