De Basic a Ruby – 5

No post anterior vimos como o computador, a partir apenas de zeros e uns, consegue representar uma infinidade de coisas, desde um simples texto de um documento a um filme 3D. Mas o computador seria inútil se não pudesse executar nenhuma ação com esses dados.

Da mesma forma que acontece com os dados, precisamos de uma codificação na qual possamos dar instruções ao computador de uma forma que ele as entenda. Chamamos essa codificação de código de máquinaCom base nela, ao se deparar com uma sequência de bytes qualquer como 10110000 01100001, o computador sabe que ação deve ser executada.

Para o computador, é trivial relacionar cada combinação específica de bytes a uma instrução. Para uma pessoa comum, isso é muito difícil. Daí existe uma representação mais palatável para o código de máquina que se chama assembly. Em assembly, o código de máquina composto apenas por números passa a ser representado por sequências de caracteres que facilitam a memorização (mnemônicos), como por exemplo  MOV AL, 61h.  Os mnemônicos são muito mais fáceis de serem aprendidos por um humano do que uma sequência de números como 10110000 01100001. 

Apesar das vantagens do assembly para o humano, sabemos que o computador só entende zeros e uns. Sendo assim, ao se utilizar o assembly, faz-se necessário o uso de uma ferramenta para montar, a partir dos mnemônicos, as sequências de bytes do código de máquina. A essas ferramentas dá-se o nome de assemblers ou montadores em português.

Especificamente no TK-2000, existia um comando chamado LM (linguagem de máquina). Esse comando fazia o TK-2000 entrar numa espécie de modo de entrada de dados em assembly. Nesse modo existiam comandos como o (ler) que exibia um trecho da memória de código do TK-2000 em forma de números hexadecimais e de seus mnemônicos correspondentes em assembly.

Fragmento de código em assembly do TK-2000
Fragmento de código em assembly do TK-2000

Simplificando, poderíamos dizer que o assembly seria apenas uma outra forma de se escrever o código de máquina. Apesar de ser mais fácil de ser entendido por um ser humano, ainda assim é equivalente ao código de máquina.  E código de máquina foi feito para ser “bom” para a máquina e não para o humano. É dai que surge a necessidade de uma forma de codificar as instruções que seja realmente mais fácil para o ser humano e que não tenha essa correspondência estrita com o código de máquina. Para o TK-2000 essa linguagem era o BASIC. Naquela época já existiam outras linguagens como COBOL, FORTRAN, C entre outras. Elas eram categorizadas como linguagens de alto nível, em contraposição ao código de máquina que era chamado de linguagem de baixo nível.

Falaremos mais sobre isso no próximo post da série.

Até lá!

Deixe uma resposta