Arquitetura
Um computador digital é uma máquina que pode resolver problemas executando uma seqüência de instruções que lhe são fornecidas. Chamamos programa a um conjunto de instruções que descrevem a maneira como realizar uma determinada tarefa.
Os circuitos de um computador podem reconhecer e executar um conjunto limitado de instruções simples, nas quais o programa precisa ser convertido antes de ser executado.
Estas instruções não são mais complicadas que:
-somar 2 números;
-comparar o valor de um número com zero;
-copiar um conjunto de dados de uma parte da memória para outra parte.
Tomadas em conjunto, as instruções básicas de um determinado computador formam uma linguagem por meio da qual é possível pessoas se comunicarem com as máquinas, tal linguagem é chamada de Linguagem de Máquina.
Os projetistas de um processador precisam decidir quais instruções devem fazer parte da sua linguagem de máquina. Eles tentam fazer instruções o mais simples possível, compatível com a utilização e a performance que se deseja atingir, de forma que reduza o custo e a complexidade da eletrônica para sua implementação.
Devido ao fato de as linguagens de máquinas serem muito simples, o seu uso torna-se muito difícil para os humanos.
Esa última observação fez com que, ao longo do tempo, fosse definida uma maneira estruturada de se organizar os computadores (processadores). Desse modo, a complexidade pode ser dominada, e os sistemas de computador podem ser projetados de maneira sistemática e organizada. A esta metodologia, chamamos de organização estruturada de Computadores.
1.1.1. Linguagens, Níveis e Máquinas Virtuais
Com o passar do tempo, surgiu-se a necessidade de projetar um novo conjunto de instruções mais conveniente para os usuários do que as instruções da linguagem de máquina, nativas do processador. Tomadas em conjunto, estas novas instruções também formam uma linguagem que chamaremos de L1, da mesma forma que as instruções de máquinas formam uma