Linguagem de Máquina e Assembler

Além do fato de o computador necessitar que lhe instruam com ações bem específicas, estas ações devem ser passadas para o computador numa linguagem que ele possa entendê-las, chamada linguagem de máquina. Esta linguagem é composta somente por números, representados de forma binária, que, sob o ponto de vista do computador, representam as operações e os operandos que serão usados no processamento do programa. Para um ser humano, a linguagem de máquina é dificílima de se compreender. Assim, existe uma linguagem representada por comandos mas que reproduz as tarefas que serão executadas dentro do computador, a linguagem de montagem (assembly). Entretando, mesmo a linguagem de montagem é difícil de programar e os programas feitos para um determinado processador, por conterem instruções específicas deste, não funcionarão em um processador de outro tipo.

Com ilustração, abaixo é mostrado o início de um programa que escreve a frase ``Olá Mundo'' no monitor. Na coluna da esquerda está o endereço relativo de memória, na coluna do centro o programa escrito em linguagem de máquina e na coluna da direita a representação em caracteres ASCII. Teoricamente, o programa poderia ser escrito diretamente em linguagem de máquina, como mostrado abaixo, entretando a sintaxe do mesmo é muito pouco compreensível e a probabilidade de erro para o seu desenvolvimento seria muito grande.

00000000   7F 45 4C 46  01 01 01 00  00 00 00 00  00 00 00 00  .ELF............
00000010   02 00 03 00  01 00 00 00  D0 82 04 08  34 00 00 00  ............4...
00000020   BC 0C 00 00  00 00 00 00  34 00 20 00  07 00 28 00  ........4. ...(.
00000030   24 00 21 00  06 00 00 00  34 00 00 00  34 80 04 08  ..!.....4...4...
00000040   34 80 04 08  E0 00 00 00  E0 00 00 00  05 00 00 00  4...............

root 2009-03-12