Total de visualizações de página

domingo, 20 de março de 2016

NOÇÕES DE PROGRAMAÇÃO EM ASSEMBLY

O que é Assembly



    "Assembly" significa montagem. "Assembler" significa montador. Montagem é o ato de transformar uma seqüência de código fonte (texto) em código objeto (linguagem de máquina), e montador é o programa que faz essa transição.

    O diagrama abaixo mostra que o PROGRAMADOR escreveu uma lista de comandos em forma de texto, onde cada linha realiza uma função específica. 

   No entanto, o micro controlador não entende estes comandos em modo de texto. Eles precisam antes ser traduzidos para uma linguagem binária que são os famosos (0 e 1) ou (linguagem de máquina), e isso é feito pelo programa montador, nesse caso o (ASSEMBLER).



      Até que é possível programar diretamente em linguagem de máquina, mas é muito, mas muito mais difícil do que programar em assembly.
       Ao utilizar esta linguagem e um programa montador, o programador não escreve em linguagem de máquina, e sim em uma linguagem textual, que facilita a construção dos programas. Embora fique mais fácil do que programar direto em linguagem de máquina, programar em ASSEMBLY ainda é uma das formas mais "difíceis" de programação, pois ela é conhecida como a linguagem de programação de "mais baixo nível". 
        O arquivo fonte do diagrama acima (a lista de comandos digitada pelo programador) é composta de instruções chamadas de (mnemônicos), parâmetros, rótulos, comentários e diretivas, e após são transformados em linguagem de máquina por um programa montador.
        Vamos conhecer um pouco sobre cada um destes componentes do programa.
      
      INSTRUÇÃO: É o nome dado a uma operação que o microcontrolador pode realizar. Exemplo, se o microcontrolador pode realizar a soma de dois valores, dizemos que existe no mínimo uma instrução para soma. No caso do microcontrolador PIC, as instruções que realizam soma são duas, a ADDWF e a ADDLW. Você consegue descobrir que instruções estão disponíveis para programação assembly no datasheet do microcontrolador em questão.

      MNEMÔNICO: É uma representação textual de uma instrução. As instruções são, na verdade, códigos binários, e para serem entendidos pelos programadores devem ser representados na forma textual. Se os mnemônicos não fossem utilizados, teríamos que programar assembly utilizando códigos numéricos difíceis de memorizar. Desta forma, uma das instruções de adição citadas anteriormente possui o mnemônico ADDWF, e sua representação binária é 000111xxxxxxxx onde x.


      PARÂMETROS: São as informações manipuladas por uma instrução. Isso é necessário sempre que precisarmos informar à instrução quais os elementos envolvidos na operação. Por exemplo, se desejarmos somar dois valores, a instrução poderá ser ADDWF ou ADDLW, mas os valores a serem somados também deverão ser informados, sendo estes últimos os que chamamos de "parâmetros."








      DIRETIVAS: São linhas que determinam como o programa montador irá trabalhar. Não geram efeito direto no código binário gerado. Por exemplo, a diretiva  LIST p=16F877  determina qual o microcontrolador que será usado.

     RÓTULOS: São nomes dados as linhas do programa, e servem para que em uma instrução de desvio possa se determinar o ponto para onde se deseja ir no programa. Os rótulos sempre são alinhados na coluna 0 (sem espaços antes do mesmo), enquanto que as instruções devem ser escritas após uma margem (obrigatoriamente após a coluna 0).

      COMENTÁRIOS: São trechos de texto escritos após um sinal de ponto e vírgula (;). São úteis para que possamos adicionar pequenos lembretes no programa, facilitando a manutenção futura. Não interferem no tamanho do programa binário gerado.
Outros termos importantes:

     MONTADOR: É o programa que transforma um programa fonte assembly em um programa executável. Um exemplo é o MPASM, que faz parte do MPLAB, uma ferramenta de desenvolvimento distribuída pela MicroChip (fabricante dos microcontroladores PIC)

     Há muito mais para se falar de assembly, porém, abordamos aqui epenas alguns conceitos e noções sobre essa linguagem.

EXEMPLO DE PROGRAMA ASSEMBLY














O código na caixa acima, cria um programa em assembly que exibe a frase "OLÁ, MUNDO!" quando é executado.


Um comentário: