Assembly para PIC
Abstract – O experimento teve como objetivo verificar o conjunto de instruções basicas em assembly do PIC16F877A, usando o compilador MPLAB.
Keywords - Assembly, PIC16F877A, MPLAB
I. INTRODUÇÃO
O PIC 16F877 é um microcontrolador da família de 8 bits e núcleo de 14 bits fabricado pela Microchip Technology. O número 16 significa que ele faz parte da família "MID-RANGE". É um microcontrolador da família de 8 bits . Isto significa que a ALU (Unidade Aritmética e Lógica em português) é lida com palavras de no máximo 8 bits. A letra F indica que a memória de programa deste PIC é do tipo "Flash". Cada linha da memória é uma palavra de 14 bits. Os três últimos números permitem identificar precisamente o PIC, que neste caso é um PIC do tipo 877.
O PIC pode ser progamado para executar de varias maneiras. Mas o foco sera com linguagem Assembly. O set de instruções em Assembly é dividido em 4 grupos, os quais compõe um conjunto de 35 intruções:
• Operações com registradores;
• Operações com literais;
• Operações com bits;
• Controles.
II. MATERIAS UTILIZADOS
• Computador com MPLAB;
• Datasheet do PIC16F877A;
III. PROCEDIMENTOS E RESULTADOS
Neste experimento, foi verificado algumas das instruções basicas em Assembly do PIC16F877A. Por exemplo, foi visto duas maneiras de se incrementar(ou decrementar) o valor de file e salvar nele mesmo, ou seja, os commandos ‘incf file’ e ‘incf file,1’(‘decf file’ e ‘decf file,1’) seguem a mesma rotina.
Agora, se o progamador quer fazer uma operação com file, e armazenar no registrador W, a instrução muda um pouco. Para incrementar (ou decrementar) o progama, o progamador deve usar a seguinte instrução: ‘incf file,w’ (ou ‘decf file,w’).
Uma coisa interessante na linguagem Assembly, é que é impossivel fazer uma soma ou subtração entre dois endereços diretamente. Para fazer, é necessaria a utilização do registrador W. No caso da soma entre A e B, primeiro usa-se o