Introdução

Linguagem Assembly

A linguagem Assembly é conhecida como uma linguagem de baixo nível, ao contrário do C e do BASIC que são de alto -nível. O que isto significa é que as instruções em Assembly (ex: mov, out, add) são construídas com menos instruções básicas do processador do que em linguagens de alto-nível ; neste caso elas são traduzidas quase directamente. Em BASIC, no entanto, as i nstruções (ex: print, draw) são constituídas por múltiplas instruções de baixo-nível. No caso do 'print' podem ser milhares. Isto requer mais memória e tempo do processador, por isso os programas em BASIC podem correr muitas vezes mais lento do qu e um escrito em Assembly. Contudo, podes criar um programa bastante útil em BASIC em poucos minutos. Em Assembly, o equivalente podia levar horas, mas correria mais rápido e seria mais pequeno.     

Precisas de processamento rápido?

O Aseembly é a linguagem de mais baixo-nível (depois do código máquina, que é a linguagem do processador). Se estás interessado em codificar demonstrações de gráficos, ou qualquer coisa que necessite do máximo de velocidade, eu recomendo que utlizes o Assembly. O problema é que o Assembly depende da plataforma. Isto significa que se utilizares um PC (e aprendeste a variedade Intel 80x86) então precisavas de converter o teu código para outra máquina, por exemplo, um Macintosh. Terias que começar do início, do nada por que essas máquinas utilizam um CPU diferente com um conjunto de instruções diferentes.

O Assembly é difícil de aprender ?

A progra mação em Assembly é normalmente considerada mais difícil do em     alto-nível, porque tu tens que pensar como o computador e precisas de muitas mais instruções para uma simples tarefa. Isto também torna a manutenção e mesmo o compreendimento do código mais difícil. Mas porque é que as pessoas continuam a programar na linguagem Assembly? Porque, quando programado devidamente, consegues obter o mais rápido e/ou mais pequeno código possível e podes simplesmente programar tudo o que é possível de se fazer com um computador.

Combinando as duas estratégias !

Mas existe uma maneira de combinar as vantagens  do Assembly com linguagens de alto-nível: usas pequenas rotinas em Assembly que são utlizadas pelo corpo do programa de alto-nível. Estas rotinas em A ssembly realizam tarefas que precisam mesmo de ser rápidas ou que não podem ser realizadas pela linguagem de alto-nível, mas  o resto do programa é escrito em código de alto-nível. Se reescreveres uma rotina de alto-nível, que representa cerca de 90& #37; do tempo de execução do programa, em Asembly e consequentemente triplicares a sua velocidade de execução, obtens um programa que corre bem pelo menos duas vezes mais rapidamente! Isto é, claro, um raro exemplo, mas ilustra bem o meu ponto.

Um exemplo comum ! 

Uma rotina utlizada frequentemente, por exemplo, é uma que escreve uma string directamente para o écran, em vez de utilizar rotinas do DOS ou do BIOS (que a maioria das linguagens de alto-nível utiliza). Essas rotinas do DOS e do BIOS são relativamente lentas: manter um simples contador no écran pode atrasar o processo significativamente, experimenta ! A solução é fazer uma rotina que simplesmente coloca  os caracteres de uma string directamente na memória de vídeo (algures na RAM).
Isto é realmente mais rápido e pode acelerar significativamente programas com muito 'output' para o écran. Este método torna o teu progra ma um pouco menos compatível, mas ainda funcionará nos PC's normais ( cerca de 99.99%!). É claro que existem algumas desvantagens, uma: perdes a possibilidade de redireccionares o output (MYPROG > OUTPUT:TXT), mas nos programas dos nossos dias isso só dificilmente será um senão!

Este Web Site designed com:

Comentários e
Sugestões: