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áquina. Com 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 L (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.
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á!
To lendo aqui os posts antigos e adorando…
Não me canso de achar o máximo quando me toco que um post com detalhes PRECISOS sobre computação na verdade são escritos por um Anestesista! %-) Será que é pouco gênio? %-)
Um comentário desses vindo de um gênio de verdade faz até eu querer acreditar! 😉
Muito interessante e bem explicado!
Eu sou da época do TK 2000, mas não tive acesso a ele. Seus posts foram claros para mim, desmistificando a programação daquela época que, para quem via de fora era “como ver um bicho sobrenatural e de outro mundo”