Apesar da resposta parecer bastante óbvia, várias pessoas se perguntam sobre qual linguagem é melhor: C ou Assembler. Essa resposta é diretamente dependente da situação e uso.

Microcontrolador C ou Assembler?

Para programas muito pequenos, que utilizam apenas funções básicas do 8051, talvez o assembler não seja tão ruim. Para programas maiores, que incluem a grande maioria dos projetos comerciais, a linguagem C é sem dúvidas a mais adequada. E os microcontroladores são uma boa opção para ajudar na qualidade da sua programação.

Comparativo entre C e Assembler

Ao programar em assembler o código gerado não irá depender do compilador utilizado, pois o mesmo precisará apenas traduzir as instruções digitadas pelo programador para o código de máquina a ser gravado no microcontrolador. Quando um programa é feito em C o compilador tem um papel fundamental e decisivo na eficiência do mesmo. Bons compiladores C para 8051, em geral, são caros.

Programando para microcontroladores

Na figura, esquema de conectores em um microcontrolador 8031 e 8051. (Foto: pt.wikipedia.org)

Codificar em assembler é muito mais susceptível a erros que em C, e modificar um programa grande em assembler é extremamente mais complicado que modificar um programa em C.

Testar um programa grande em um simulador assembler é em geral mais difícil e as vezes quase impossível dependendo da complexidade do hardware externo envolvido. A maioria dos fabricantes disponibiliza ferramentas e ambientes de desenvolvimento considerando que os programas serão feitos em C.

A maior parte das bibliotecas, funções e material de apoio encontrados na internet estão em C. Apesar dos compiladores C serem cada vez melhores, muitas vezes é possível otimizar trechos de códigos escrevendo-os em Assembler.

Qual linguagem de programação é melhor?

Como se pode observar, a linguagem assembler é extremamente improdutiva nas maioria das situações. Deve ser encarada fortemente como um método didático e aproveitada neste caso. Ter conhecimento do que está por trás das instruções C durante a elaboração de um programa é, sem dúvida, um grande diferencial para um programador de microcontroladores.

Qual linguagem de programação você prefere? Como faz sua programação para microcontroladores?