Buscar

AULA-05R00

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 25 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 25 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 25 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Microprocessadores
Aula 05:
Instruções Assembly para PIC16F – Parte I:
1
Instruções Assembly para PIC16F – Parte I:
Instruções orientadas a bits
Referência para a aula:
1 – Apostila: Instruções e Diretivas [Xerox].
Prof.: Edgar Campos Furtado 
edgar@ufsj.edu.br 
Sala: 217.2
Premissas para PIC16F:
• RISC � 35 instruções;
• Cada instrução � 14bits;
• Indicadores do registrador STATUS � C, DC e Z.
Introdução
AULA-05 2UFSJ – CAP
© Edgar C. Furtado
Divisão das instruções:
• Instruções orientadas a bits;
• Instruções orientadas a bytes;
• Instruções que operam com literais e de controle;
Contador de Programa
A memória de programa contém 8192 registradores de 14 
bits cada � necessidade de 13bits para acesso a todas as 
instruções.
AULA-05 3UFSJ – CAP
© Edgar C. Furtado
Dilema do projeto: Como acessar as instruções sem 
aumentar a quantidade de registradores dedicados e 
facilitar a implementação de instruções de saltos?
Contador de Programa
Utilizar registradores da memória de Dados:
PCLPCLATH
8 bits5 bits
PC = 13 bits
AULA-05 4UFSJ – CAP
© Edgar C. Furtado
PCLPCLATH
Registrador #02 na 
memória de dados;
Modificável via instrução;
Registrador #10 na 
memória de dados;
Modificável via instrução;
Contador de Programa
Caminho de dados para o Contador de Programa:
AULA-05 5UFSJ – CAP
© Edgar C. Furtado
A linguagem do processador: instruções binárias!
O conjunto de instruções binárias interpretáveis por um dado
processador é denominado linguagem de máquina.
Algumas dificuldades da programação em linguagem de máquina:
Conjunto de Instruções
AULA-05 6
• Memorização do formato das instruções;
• Operar com números binários;
• Quantidade de instruções.
Ideia: Associar um mnemônico às instruções binárias. Exemplo:
11 1111 0000 1010 � ADDLW 10d
UFSJ – CAP
© Edgar C. Furtado
Adiciona o literal 10d ao conteúdo do registrador de trabalho W
A linguagem Assembly: conjunto de instruções mnemônicas
equivalentes às instruções binárias!
Processo de gravação/leitura de códigos Assembly:
Conjunto de Instruções
Montador Gravação
AULA-05 7UFSJ – CAP
© Edgar C. Furtado
Código
.asm
Programador
Montador Gravação
Código
.hexAssembler
Código
.asm
Código
.hex
Desmontador
Disassembler
Leitura
Memória de
Instruções
do PIC
Mnemônico de Leitura das Instruções:
Mnemônico do ASSEMBLY para PIC16F
AULA-05 8UFSJ – CAP
© Edgar C. Furtado
Mnemônico do ASSEMBLY para PIC16F
A maioria das instruções necessitam de argumentos!
A representação para esses argumentos é feita em letra minúscula,
significando:
AULA-05 9UFSJ – CAP
© Edgar C. Furtado
Mnemônico do ASSEMBLY para PIC16F
Exemplo: Supondo que se queira movimentar o conteúdo do
registrador de trabalho para um outro registrador na memória de
dados.
MOV + W + F = MOVWF
Outros exemplos:
AULA-05 10UFSJ – CAP
© Edgar C. Furtado
Ou exclusivo (XOR) entre o conteúdo de (W) e o do registrador (F);
Decrementa (DEC) o conteúdo do registrador (F);
Limpa (CLR) o conteúdo do registrador (F);
Um bit (B) é setado (S) do registrador (F);
Um bit (B) é testado (T) do registrador (F), salta (S) se for 0 (C);
Rotaciona 1 bit (R) à esquerda (L) o conteúdo do registrador (F);
XORWF:
DECF:
CLRF:
BSF:
BTFSC:
RLF:
Outros exemplos:
Instruções
Instruções orientadas a bits:
BCF: Um bit (B) é limpo (C) do registrador (F);
BSF: Um bit (B) é Setado (S) do registrador (F);
BTFSC: Um bit (B) é testado (T) do registrador (F), salta (S) se for 0 (C);
BTFSS: Um bit (B) é testado (T) do registrador (F), salta (S) se for 1 (S);
AULA-05 11UFSJ – CAP
© Edgar C. Furtado
Ação: Alterar nível lógico ou testar nível lógico de um dado bit de um
registrador.
Requisitos para a instrução:
• Código da ação;
• Endereço do registrador;
• O bit do registrador.
Instruções
Acesso direto à memória SRAM:
4 Bancos de memória com 128bytes cada � 512 registradores, ou
seja, são necessários 9 bits para acesso direto a qualquer
registrador.
AULA-05 12UFSJ – CAP
© Edgar C. Furtado
Dilema do projeto: Quanto maior o número de bits de 
endereçamento nas instruções menor quantidade de 
instruções codificadas/ações.
Instruções
Acesso direto à memória SRAM: Realizar o acesso combinando:
Caminho de dados:
bits de um registrador na memória 
(STATUS) mais o código de 
endereçamento na instrução:
AULA-05 13UFSJ – CAP
© Edgar C. Furtado
Instruções
Instruções orientadas a bits:
BCF BTFSC
BSF BTFSS
Formato da Instrução de máquina:
AULA-05 14UFSJ – CAP
© Edgar C. Furtado
OPcode
Índice do bit
(0 a 7)
Endereço do Registrador
(0 a 127)
Formato da Instrução de máquina:
Instruções
Instruções orientadas a bits: Formato da instrução
OPcode:
Ver endereços possíveis dos 
banco de registradores.
Exemplo: 
AULA-05 15UFSJ – CAP
© Edgar C. Furtado
Índice do bit:
000 – bit 0 LSB
001 – bit 1
010 – bit 2
. . .
111 – bit 7 MSB
0000 00002 – 0d
0111 11112 – 127d
∶BANCO 0
Instruções
Instrução de máquina
Código maquina:
0101 101 0000011
0110 010 0100000
Instrução:
1. BSF STATUS,5
2. BTFSC 32,2
AULA-05 16UFSJ – CAP
© Edgar C. Furtado
Endereço registrador
STATUS= 03
01011010000011
01100100100000
Memória de Programa:
Reg. n:
Reg. n+1:
Instruções
Instruções orientadas a bits: Requisitos para a unidade de controle:
• Identificar a instrução;
• Informar para a memória o
AULA-05 17UFSJ – CAP
© Edgar C. Furtado
• Informar para a memória o
endereço do registrador;
• Informar para a ULA o bit a
ser testado ou alterado.
Instruções
Ciclos para execução das instruções orientadas a bits
Q1: Decodifica instrução;
Q2: Busca dado na memória;
Q3:Executa ação;
Q4: Salva resultado
AULA-05 18UFSJ – CAP
© Edgar C. Furtado
Instrução: BCF f,b | o bit b do registrador f � 0
• BCF: Um bit (B) é zerado (C) do registrador (F);
• Coloca nível lógico 0 para bit b do registrador f;
• Não afeta nenhum INDICADOR;
Instruções
AULA-05 19
Exemplo: BCF STATUS,0
BCF STATUS,0
STATUS DC C Z
antes 0001 0111 x x x
depois 0001 0110 x x x
0x17=00010111
0x16=00010110
UFSJ – CAP
© Edgar C. Furtado
Instrução: BSF f,b | o bit b do registrador f � 1
• BCF: Um bit (B) é setado (S) do registrador (F);
• Coloca nível lógico 1 para bit b do registrador f;
• Não afeta nenhum INDICADOR;
Instruções
AULA-05 20UFSJ – CAP
© Edgar C. Furtado
Exemplo: BSF TMR0,7
BSF TMR0,7
TMR0 DC C Z
antes 0001 0111 x x x
depois 1001 0111 x x x
0x17=00010111
0x97=10010111
Instrução: BTFSC f,b | Testa um bit do registrador f
• BTFSF: Um bit (B) é testado (T) 
do registrador (F) e salta (S) se 
o mesmo for 0 (C);
Instruções
AULA-05 21
• Pode ser utilizada para teste 
condicional;
• Não afeta nenhum INDICADOR;
UFSJ – CAP
© Edgar C. Furtado
Instrução: BTFSC f,b | Testa um bit do registrador f
Exemplo:
Instruções
AULA-05 22UFSJ – CAP
© Edgar C. Furtado
Assume-se que no ciclo de instrução (CI) 0 a primeira instrução é
apenas lida. No CI 1 a verificação do bit 2 do registrador REG1 é
realizada pela função BTFSC. Como tal bit é igual a 1 a próxima instrução
é executada, no CI 2 e, em seguida, a terceira instrução, no CI 3.
Instrução: BTFSC f,b | Testa um bit do registrador f
Exemplo:
Instruções
AULA-05 23UFSJ – CAP
© Edgar C. Furtado
Nesse caso, no CI 1 é realizada a verificação do bit 1 do registrador
REG1. Como tal bit é igual a 0, tem-se que a próxima instrução não é
executada no CI 2, mas sim ignorada. A terceira instrução é lida no CI 2,
mas executada no próximo CI.
Instrução: BTFSS f,b | Testa um bit do registrador f
• BTFSF: Um bit (B) é testado (T) 
do registrador (F) e salta (S) se 
o mesmo for 1 (S);
Instruções
AULA-05 24
• Pode ser utilizada para teste 
condicional;
• Não afeta nenhum INDICADOR;
UFSJ – CAP
© Edgar C. Furtado
Instrução: BTFSS f,b | Testa um bit do registrador f
Exemplo:
Instruções
AULA-05 25UFSJ – CAP
© Edgar C. Furtado
Nesse caso tem-se uma seqüência de instruções que realizam um teste
no bit 1 (verifica se o mesmo é igual a 0) e depois no bit 2 (verifica se o
mesmo é igual a 1), ambos nomesmo registrador REG1. Somente o
segundo caso é verdadeiro. Como conseqüência a terceira instrução não
é executada no CI 3, pois nesse ciclo essa instrução é ignorada. Na
seqüência executa-se a quarta instrução no CI 4.

Outros materiais