Escolar Documentos
Profissional Documentos
Cultura Documentos
Assis 1
Sintaxe: MOVLW k
Descrição: o byte imediato a instrução,k , é carregado para o acumulador W
Flags Afetados: nenhum
Exemplo:
MOVLW 0x20 ; a informação 0x20 é carregada para
; o registrador W,ou seja após a instrução
; W=0x20
W:
0 0 1 0 0 0 0 0
Sintaxe: MOVWF f
Descrição: move o conteúdo do acumulador W para o registrador f, sem alterar o
conteúdo do acumulador W
Flags Afetados: nenhum
Exemplo:
REG equ 0x20 ; registrador da posição 0x20
MOVLW 0x50 ; acumulador W possuí 0x50
MOVWF REG ; agora no registrador da posição 0x20
; tem-se o valor 0x50
W: 0x50
memória interna do PIC
Endereço conteúdo
1dh
1eh
1fh
→ 20h 0x50
Universidade Paulista Prof. Assis 2
Endereço conteúdo
4dh
4fh
→ 50h 0x1
W: 0x1
Sintaxe: ADDLW k
Descrição: o conteúdo do acumulador (W) é somado com o dado imediato k e o
resultado armazenado no próprio acumulador.
Flags Afetados: C,DC,Z
Exemplo:
MOVLW 0x20 ; acumulador W possuí 0x20
ADDLW 0x10 ; no acumulador teremos 0x30
W (antes): 0x20
k:
0x10
W(depois):
0x30
Universidade Paulista Prof. Assis 3
como d=0:
Endereço conteúdo
4dh
4fh
→ 50h 0x6
W :(antes) 0x10
W(depois): 0x16
Sintaxe: ANDLW k
Descrição: realiza-se a operação and entre o conteúdo do acumulador (W) é o
dado imediato k , o resultado armazenado no próprio acumulador.
Flag Afetado: Z
Exemplo:
MOVLW 0x22 ; acumulador W possuí 0x20
ANDLW 0x10 ; no acumulador teremos 0x10
W (antes)
0 0 1 0 0 0 1 0
k:
0 0 0 0 0 0 1 0
W (antes)
0 0 0 0 0 0 1 0
Universidade Paulista Prof. Assis 4
Endereço conteúdo
4dh
4fh
→ 50h 0x6
W :(antes) 0xf2
depois:
W(depois): 0xf2
Endereço conteúdo
4dh
4fh
→ 50h 0x2
Sintaxe: CLRF f
Descrição: coloca zero no registrador f
Flag Afetado: Z
Exemplo:
Endereço conteúdo
4dh
4fh
→ 50h 0x0
Universidade Paulista Prof. Assis 5
Sintaxe: CLRW
Descrição: coloca zero no acumulador
Flag Afetado: Z
Exemplo:
Sintaxe: IORLW k
Descrição: realiza a operação lógica or entre o conteúdo de W e o valor k , o
resultado é armazenado no próprio W.
Flag Afetado: Z
Exemplo:
MOVLW 0x3f ; valor 0x3f no registrador
IORLW 0x35 ; agora o conteúdo de W é 0xbf
Sintaxe: SUBLW k
Descrição: realiza-se a operação de subtração entre o conteúdo do acumulador
(W) é o dado imediato k , o resultado armazenado no próprio acumulador.
Utiliza-se o complemento de dois. Se o resultado for positivo o bit de carry
fica no nível lógico 1, caso contrário 0.
Flags Afetados: C, DC, Z
Exemplo:
MOVLW 0x02 ; acumulador W possuí 0x2
SUBLW 0x01 ; no acumulador teremos 0x01 e C=1
Sintaxe: XORLW k
Descrição: realiza a operação lógica xor entre o conteúdo de W e o valor k , o
resultado é armazenado no próprio W.
Flag Afetado: Z
Exemplo:
MOVLW 0x3f ; valor 0x3f no registrador
XORLW 0x35 ; agora o conteúdo de W é 0x0a
2)
REG equ 0x50 ; registrador da posição 0x50
MOVLW 0X01 ; zera registrador
MOVWF REG ; guarda no registrador
BTFSC REG,0 ; como o bit 0 é não é 0 então
GOTO FIM ; esta instrução será executada
NOP ; mas esta será executada
2)
REG equ 0x50 ; registrador da posição 0x50
MOVLW 0X01 ; zera registrador
MOVWF REG ; guarda no registrador
BTFSS REG,0 ; como o bit 0 é não é 0 então
GOTO FIM ; esta instrução será descartada
NOP ; mas esta será executada
3- Instruções de desvio
Sintaxe: GOTO k
Descrição: desvio incondicional para a posição k.
Flags Afetados: nenhum
Exemplo:
Sintaxe: CALL k
Descrição: a execução do programa é desviada para uma nova posição determinada
pela constante k. O conteúdo do registrador contador de programa é
incrementado de 1 e salvo buffer de pilha.O valor de k é copiado no PC,
nos bits <10:0>. Os bits mais significativos do PC são carregados do
PCLATCH:
k → (PC<10:0>);
(PCLATH<4:3>) →(PC<12:11>)
Flags Afetados: nenhum
Exemplo:
REG equ 0x50 ; registrador da posição 0x50
MOVLW 0X01 ; zera registrador
MOVWF REG ; guarda no registrador
CALL TESTE ; chama a subrotina TESTE
BSF REG,1 ; após retorno executa esta instrução
Sintaxe: RETURN
Descrição: Retorna da rotina da interrupção. O valor da pilha é armazenado no
registrador PC:
TOS → (PC)
1→ GIE
Flags Afetados: nenhum
Exemplo:
Sintaxe: RETLW k
Descrição: O valor de W é carregado com os oito bits literal k. O valor da pilha é
armazenado no registrador PC:
TOS → (PC)
k→ (W)
Flags Afetados: nenhum
Exemplo:
TABELA ADDWF PC ;
RETLW 10 ;
RETLW 11 ;
5- Instruções genéricas
6.1 – CLRWDT – reseta o “wathdog “.
Sintaxe: CLRWDT
Descrição: reseta o “wathdog “, com as seguintes condições:
0 → WDT
0 → WDT prescalar
1→ TO
1→ PD
Sintaxe: NOP
Descrição: nenhuma instrução é executada
Flags Afetados: nenhum
Descrição: os quatros bits mais significativos do registrador f são trocados pelo quatro
menos signficativo. O resultado da troca pode ser armazenado no próprio
registrador ou no acumulador dependendo do valor de d:
(f<3:0>) → (dest<7:4>)
(f<7:4>) → (dest<3:0>)
Sintaxe: SLEEP
Descrição: a CPU entra no estado de “standby”., com as seguintes condições:
0 → WDT
0 → WDT prescalar
1→ TO
0→ PD
sendo que o clock fica desabilitado.