banner

blog

Jul 27, 2023

Quem tem medo da linguagem assembly?

Esta semana, [Al Williams] escreveu um excelente artigo sobre se valia ou não a pena aprender uma linguagem assembly e quando. Os comentários transbordaram e ficamos surpresos que tantas pessoas basicamente concordem conosco: sim. Claro, é uma turma do Hackaday, mas eu ainda não esperava a manifestação de amor pela mais primitiva das línguas.

A linguagem assembly não é realmente uma linguagem. Cada chip fala seu próprio dialeto. Claro que existem semelhanças: todo CPU tem uma função add, certo? Mas quase nenhuma CPU tem apenas um acréscimo – existem variantes com e sem transporte, armazenamento e leitura de registros de trabalho ou RAM. E quando você começa a falar sobre acesso à memória, direto ou indireto, as arquiteturas individuais dos chips exigem diferentes linguagens assembly.

Mesmo assim, embora as maneiras específicas pelas quais as CPUs fazem o que fazem possam ser incompatíveis do ponto de vista estritamente da linguagem, elas são muito mais semelhantes em termos de idiomas de programação que você aprenderá ao longo do caminho. Assim como aprender um conjunto de algoritmos sólidos irá ajudá-lo, não importa qual linguagem de nível superior você use, aprender os conceitos por trás da criação de loops e estruturas de memória simples a partir da linguagem assembly bruta será útil, independentemente da CPU que você escolher.

Eu escrevi linguagem assembly apenas para algumas CPUs, e não muito, mas descobri que os microcontroladores são os mais amigáveis. Então, se você quiser mergulhar os pés nessa água, compre um AVR ou um MSP430. Ou talvez até o novo hotness – um RISC-V. Você descobrirá que os conjuntos de instruções são pequenos o suficiente para que você mesmo precise fazer a maior parte do trabalho. E esse é, afinal, o objetivo de aprender uma linguagem assembly: aprender a pensar como o silício. Se você tratar isso como um quebra-cabeça divertido de resolver, provavelmente até gostará da experiência.

A pergunta original de [Al] era quando você deveria aprender uma linguagem assembly: antes ou depois de uma linguagem de nível superior. Para 99% dos nossos leitores, eu diria que a resposta é agora.

COMPARTILHAR