Vous êtes sur la page 1sur 16

Microprocessadores

Prof. Arthur Braga

Tpicos
n

O PIC16F628A
Sintaxe

Assembly do PIC16F628A

Diretivas

Instrues

Sintaxe do Assembly
PIC16F628A

Elementos Bsicos da Linguagem Assembly


Na linguagem Assembly do PIC16F628A uma linha de programa
(declarao) pode ter, alm da instruo (mnemnico - cdigo de operao)
e de seus operandos, os seguintes elementos bsicos:
n

Label (Rtulo): uma string utilizada, entre outras coisas, para


representar o incio de um bloco de instrues que executa uma tarefa
definida dentro do programa.

Comentrio: um texto iniciado por ponto-e-vrgula (;) e colocado aps


cada instruo para informar a tarefa que est sendo executada.

Diretivas: conhecidas tambm como pseudo-instrues, so comandos


que no fazem parte do conjunto de instrues do microcontrolador, mas
so reconhecidos pelo programa montador.

Por onde comear ?

Sintaxe do Assembly PIC16F628A

Sintaxe do Assembly PIC16F628A

Sintaxe do Assembly PIC16F628A

Diretivas

Diretivas
Diretivas so comandos que aparecem no cdigo-fonte, mas no fazem
parte do conjunto de instrues do PIC. Esses comandos so
reconhecidos pelo MONTADOR, no sendo, portanto, convertidos em
cdigo objeto.
No PIC as diretivas so divididas em grupos (ou tipos), dependendo da
sua aplicao:
* Diretivas de Controle;
* Diretivas Condicionais;
* Diretivas de Dados;
* Diretivas de Listagem;
* Diretivas de Macro;
* Diretivas de Objetos de Arquivos
Foge ao escopo da disciplina o estudo de todas as diretivas do
PIC16F628A. Sero discutidas apenas as mais utilizadas.

Diretivas

Diretivas
Exemplo
ORG

ORG

0x0000
GOTO

INICIO

0x0004
... (rotinas de tratamento das interrupes)

INICIO:
...

Diretivas

Diretivas

Instrues

Instrues

Instrues

Formato das palavras de 14 bits que codificam estas instrues ?

Instrues Formato Geral

Instrues

Instrues

Instrues

10

Instrues

Instrues

16

11

Instrues

Instrues

13

12

Exemplos da Sintaxe

ADDWF
Descrio: Soma o contedo do registo W com o registrador f. Se d 0, o
resultado armazena-se em W, Se d 1 armazena-se em f.
Sintaxe:
ADDWF f,d
Operandos: d - [0,1], f [0, 127]
Operao: (W) + (f) ==> (dest)
Flags afetadas: C, DC, Z
Exemplo:

ADDWF REG,0
; Antes: W = 0x17, REG = 0xC2
; Depois: W = 0xD9, REG = 0xC2

DECFSZ
Descrio: Decrementa o contedo do registrador f. Se d 0, o resultado
armazenado em W. Se d 1 armazenado em f. Se o resultado 0 salta
uma instruo e a instruo executada em 2 ciclos de mquina.
Sintaxe:
DECFSZ f,d
Operandos: d - [0,1], f [0, 127]
Operao: (f) - 1 ==> d; Salta uma instruo Se Resultado = 0
Flags afetadas: nenhum
Exemplo:

DECFSZ REG,0
GOTO NO_ES_0
SI_ES_0
; Instruo
NO_ES_0
; Salta instruo anterior

13

CLRF
Descrio: O registrador f carregado com 0x00. A flag Z ativada.
Sintaxe:
CLRF f
Operandos: f [0, 127]
Operao: 0x00 ==> (f), 1 ==> Z
Flags afetadas: Z
Exemplo:

CLRF REG
; Antes: REG = 0x5A
; Depois: REG = 0x00, Z = 1

MOVWF
Descrio: O contedo do registrador W passa para o registrador f.
Sintaxe:
MOVWF f
Operandos: f [0, 127]
Operao: W ==> (f)
Flags afetadas: nenhum
Exemplo:

MOVWF REG
; Antes: REG = 0xFF, W = 0x4F
; Depois: REG = 0x4F, W = 0x4F

RRF
Descrio: O contedo de f rotacionado direita. O bit de menor peso de f
passa para o carry (C), e o carry colocado no bit de maior peso de f.
Se d 0, o resultado armazenado em W. Se d 1 armazenado em f.
Sintaxe:
RRF f,d
Operandos: d - [0,1], f [0, 127]
Operao: Rotao direita
Flags afetadas: C
Exemplo:

RRF REG,0
; Antes: REG = 1110 0110,
; Depois: REG = 1110 0110,

C = 1
W = 1111 0011, C = 0

ADDLW
Descrio: Soma o contedo do registrador W e do literal k, guardando o
resultado em W.
Sintaxe:
ADDLW k
Operandos: k [0, 255]
Operao: (W) + (k)==> (W)
Flags afetadas: C, DC, Z
Exemplo:

ADDLW 0xC2
; Antes: W = 0x17
; Depois: W = 0xD9

14

BCF
Descrio: Apaga o bit b do registrador f
Sintaxe:
BCF f,b
Operandos: f [0, 127], b [0, 7]
Operao:
0 ==> (f<b>)
Flags afetadas: nenhum
Exemplo:

BCF REG,7
; Antes: REG = 0xC7
; Depois: REG = 0x47

BTFSS
Descrio: Se o bit b do registrador f 1, salta uma instruo e continua
com a execuo.
Sintaxe:
BTFSS f,b
Operandos: f [0, 127], b [0, 7]
Operao: Salto Se (f<b>) = 1
Flags afetadas: nenhum
Exemplo:

BTFSS REG,6
GOTO NO_ES_0
SI_ES_0
NO_ES_0

; instruo
; instruo

GOTO
Descrio: Trata-se de um salto incondicional. A parte baixa de
carregada em PCL, e a alta em PCLATCH. Ocupa 2 ciclos de mquina.

Sintaxe:
GOTO k
Operandos: k [0, 2047]
Operao:
k ==> PC <8:0>
Flags afetadas: nenhum
Exemplo:

ORIGEM GOTO DESTINO


; Antes: PC = ORIGEM
; Depois: PC = DESTINO

RETFIE
Descrio: o PC carregado com o contedo de cima da pilha (TOS): endereo
de regresso. Consome 2 ciclos. As interrupes voltam a ser habilitadas.
Sintaxe:
RETFIE
Operandos: nenhum
Operao: 1 ==> GIE; TOS==>PC
Flags afetadas:
nenhum
Exemplo:

RETFIE
; Depois: PC = direco de regresso, GIE = 1

A sintaxe de
todas as
instrues
est
disponvel
no SIGAA

15

Bibliografia Bsica
n

Zanco, Wagner da Silva. Microcontroladores PIC


16F628A/648A uma abordagem prtica e objetiva,
Editora rica, 2005.

Datasheet do PIC16F628A/648A

Material da Disciplina
Plataforma SIGAA/UFC

16

Vous aimerez peut-être aussi