Title: 4. Conjunto de Instru
14. Conjunto de Instruções
- 35 instruções de 14 bits do tipo
- Transferência de dados
- Feito entre o registrador work (W) e o
registrador f, que representa qualquer
registrador SPR ou GPR - Aritmética e Lógica
- Operações com bit
- Controle do fluxo de execução de um programa
24. Conjunto de Instruções
- Formato das instruções
- Operações com file register byte oriented
-
- d 0 destino é W d 1 destino f
- f endereço de de 7 bits de registrador
13 8 7 6
0
OPCODE d f (FILE)
34. Conjunto de Instruções
- Formato das instruções - continuação
- Operações com file register bit oriented
- b endereço de 3 bits
- f endereço de 7 bits de registrador
13 10 9 8 7 6
0
OPCODE b (bit ) f (FILE)
44. Conjunto de Instruções
- Formato das instruções - continuação
- Operações com literais e instruções de controle
- k imediato de 8 bits
13 8 7
0
OPCODE k (literal)
54. Conjunto de Instruções
- Formato das instruções - continuação
- Instruções de controle call e goto
- k imediato de 11 bits
13 11 10
0
OPCODE k (literal)
64. Conjunto de Instruções
- Descrição dos campos das instruções
Campo Descrição
f endereço de registradores (0x00 a 0x7F)
W working register (acumulador)
b endereço do bit dentro do registrador de 8 bits
k literal , constante ou label
d seleção de destino d0 armazena resultado em W d1 no registrador f default d1.
74. Conjunto de Instruções transferência de dados
Mnemônico Descrição Operação Flag
movlw k move cte p/ k W lt- k -
movwf f move W p/ f f lt- W -
movf f,d move d p/ f f lt- d
clrw clear W W lt- 0
clrf clear f f lt- 0
swapf swap nibbles em f f(30),(74) lt- f(74),(30)
84. Conjunto de Instruções Aritmética e Lógica
Mnemônico Descrição Operação Flag
addlw k W constante W lt- W k C,DC,Z
addwf f,d W f d lt- W f C,DC,Z
sublw k W - constante W lt- W k C,DC,Z
subwf f,d W - f d lt- W - f C,DC,Z
andlw k W constante W lt- W k Z
andwf f,d W f d lt- W f Z
94. Conjunto de Instruções-Aritmética e Lógica
cont.
Mnemônico Descrição Operação Flag
iorlw k W constante W lt- W k Z
iorwf f,d W f d lt- W f Z
xorlw k W xor constante W lt- W xor k Z
xorwf f,d W xor f d lt- W xor f Z
incf f,d incrementa f d lt- f 1 Z
decf f,d decrementa f d lt- f - 1 Z
104. Conjunto de Instruções-Aritmética e Lógica
cont.
Mnemônico Descrição Flag
rlf f,d rotate left através do carry C
rrf f,d rotate right através do carry C
comf f,d d lt- complemento(f) Z
114. Conjunto de Instruções Operações com Bit
Mnemônico Descrição Operação Flag
bcf f,b reseta bit b de f f(b) lt- 0 -
bsf f,d seta bit b de f f(b) lt- 1 -
124. Conjunto de Instruções Controle do fluxo de
execução de um programa
Mnemônico Descrição Flag
btfsc f,b se f(b) 0, pula 1 instrução -
btfss f,b se f(b) 1, pula 1 instrução -
decfsz f,d d lt- f -1, pula 1 instrução se zero -
incfsz f,d d lt- f 1, pula 1 instrução se zero -
goto k vai para endereço k -
call k chama sub-rotina no endereço k -
134. Conjunto de Instruções Controle do fluxo de
execução de um programa - continuação
Mnemônico Descrição Flag
return retorna da sub-rotina -
retlw k retorna com constante em W -
retfie retona de interrupção -
144. Conjunto de Instruções outras
Mnemônico Descrição Operação
nop no operation
clrwdt limpa watchdog timer WDT lt- 0, TO lt- 1, PD lt- 1
sleep vai para o modo standby WDT lt- 0, TO lt- 1, PD lt- 0
154. Conjunto de Instruções
165. Programação Assembly
- Programação do Microcontrolador
175. Programação Assembly
- Linguagem assembly
- Labels
- Instruções
- Operandos
- Diretivas
- Comentários
185. Programação Assembly
195. Programação Assembly
205. Programação Assembly
215. Programação Assembly
- Comentários ()
- clrf TMRO TRMO 0
- clrf INTCON interrupções e T0IF0,
desabilitados - bsf STATUS, RP0 banco 1 pelo OPTION_REG
- movlw B00110001 escala 14, borda de
descida para clock externo, pull up na
porta B ativada - movwf OPTION_REG OPTION_REG lt- W
- TO_OVFL
- btfss INTCON, T0IF testa bit overflow
- goto TO_OVFL interrupção não ocorreu, espere
-
- parte do programa que processa o número de
voltas do motor -
- goto TO_OVFL
225. Programação Assembly
235. Programação Assembly
DIRETIVAS DESCRIÇÃO
define dá um significado p/ um texto
include inclui arquivo no programa
constant define uma constante
variable define uma variável
set define uma variável
equ define uma constante
org define um endereço p/ carregar o programa
end fim do programa
245. Programação Assembly
DIRETIVAS DESCRIÇÃO
if branch condicional
else alternativa para o if
endif fim de um branch condicional
while executa trecho enquanto condição verdadeira
endw fim de um while
ifdef execução de parte do programa se símbolo foi definido
ifndef execução de parte do programa se símbolo não foi definido
255. Programação Assembly
DIRETIVAS DESCRIÇÃO
cblock define um bloco de constantes
endc fim da definição de um bloco de constantes
db define um dado do tipo byte
de define um byte da EEPROM
dt define um conjunto (tabela) de dados
265. Programação Assembly
- Diretivas de Configuração
DIRETIVAS DESCRIÇÃO
_config seta configuração de bits
processor define o tipo do microcontrolador
275. Programação Assembly
285. Programação Assembly - Operadores
295. Programação Assembly - Exemplo