Ei máquina, faça o que eu digo!

Devido a forma como os computadores são, quando nos propormos a lhes passar instruções devemos fazê-lo de forma algorítmica. Isso significa que devemos deixar de lado a complexidade da comunicação humana e descer a um nível mais próximo da máquina. Pelo menos enquanto a ciência ainda não descobriu uma maneira de nos comunicarmos de igual para igual.

Mas o que um computador entende afinal? Quando um computador é construído ele recebe o que chamamos de “conjunto de instruções”, isso significa que ele não reconhece nenhuma instrução que não esteja nesse conjunto. As instruções contidas ali são muito simples e consistem em realizar coisas como operações aritméticas, transferência de dados, operações lógicas como OR, AND, NOT, entre outras. A cada instrução do conjunto é atribuído um código chamado de opcode (código de operação), ou seja, um número, uma identificação. A instrução de soma pode por exemplo possuir o opcode igual a 28 e a AND igual a 38. Isso pode variar dependendo da arquitetura do computador.

O processador, que é quem executa as instruções, só enxerga números que podem ser opcodes ou dados e os busca constantemente na memória. Exemplo: sabemos que uma instrução de soma necessita de dois números de entrada (chamados de operandos) para ser realizada. Sendo assim uma instrução de soma deve possuir além do seu opcode também a localização dos operandos, e em alguns casos o local onde a resultado será armazenado. A figura abaixo mostra o diagrama de como poderia ser uma instrução de soma em um processador hipotético.

Diagrama de uma instrução de soma

Quando o processador vai buscar uma instrução na memória, a primeira coisa que ele lê é o opcode que lhe diz de que se trata a instrução. Caso seja uma instrução de soma, como a da figura acima, o processador sabe que deverá buscar na memória os dois operandos cujos endereços estão especificados no campos operando 1 e operando 2. Ele fará a soma e o resultado será colocado no endereço de memória especificado no campo destino. Existem vários tipos diferentes de instruções, mesmo para uma soma pode haver formas diferentes de representação e execução dependendo da arquitetura do computador em uso. Na verdade esse é um assunto bastante extenso e podemos abordá-lo de forma mais rica em uma outra oportunidade.

O conjunto de instruções de um computador é geralmente muito simples e instruções isoladas não promovem grandes volumes de processamento. Quando juntamos várias delas é que os resultados começam a parecer mais visíveis. Através da união de milhões dessas pequenas instruções é que o computador pode fazer o que faz.

Ver Mais

Esta postagem foi modificada pela última vez em 25/06/2012 17:08