Microcontroladores: C ou Assembler?
Essa resposta é dependente da situação: 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.
Algumas comparações entre as duas linguagens:
• Ao programar em assembler o código gerado não irá depender do compilador5 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.
• Codificar em assembler é muito mais susceptível a erros que em C.
• 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.
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