4 Conjunto de Instrues 35 instrues de 14

  • Slides: 29
Download presentation
4. Conjunto de Instruções • 35 instruções de 14 bits do tipo – Transferência

4. 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 1/17/2022 Ricardo Pannain 1

4. Conjunto de Instruções • Formato das instruções – Operações com file register –

4. Conjunto de Instruções • Formato das instruções – Operações com file register – byte oriented 13 8 7 OPCODE d 6 0 f (#FILE) d = 0 destino é W; d = 1 destino f f = endereço de de 7 bits de registrador 1/17/2022 Ricardo Pannain 2

4. Conjunto de Instruções • Formato das instruções - continuação – Operações com file

4. Conjunto de Instruções • Formato das instruções - continuação – Operações com file register – bit oriented 13 OPCODE 10 9 8 7 6 b (bit #) 0 f (#FILE) b = endereço de 3 bits f = endereço de 7 bits de registrador 1/17/2022 Ricardo Pannain 3

4. Conjunto de Instruções • Formato das instruções - continuação – Operações com literais

4. Conjunto de Instruções • Formato das instruções - continuação – Operações com literais e instruções de controle 13 OPCODE 8 7 0 k (literal) k = imediato de 8 bits 1/17/2022 Ricardo Pannain 4

4. Conjunto de Instruções • Formato das instruções - continuação – Instruções de controle

4. Conjunto de Instruções • Formato das instruções - continuação – Instruções de controle call e goto 13 11 10 OPCODE 0 k (literal) k = imediato de 11 bits 1/17/2022 Ricardo Pannain 5

4. Conjunto de Instruções • Descrição dos campos das instruções Campo Descrição f W

4. Conjunto de Instruções • Descrição dos campos das instruções Campo Descrição f W b endereço de registradores (0 x 00 a 0 x 7 F) working register (acumulador) endereço do bit dentro do registrador de 8 bits k d literal , constante ou label seleção de destino; d=0 armazena resultado em W; d=1 no registrador f; default d=1. 1/17/2022 Ricardo Pannain 6

4. Conjunto de Instruções – transferência de dados Mnemônico movlw k movwf f movf

4. Conjunto de Instruções – transferência de dados Mnemônico movlw k movwf f movf f, d clrw clrf swapf 1/17/2022 Descrição move cte p/ k move W p/ f move d p/ f clear W clear f swap nibbles em f Ricardo Pannain Operação Flag W <- k f <- W f <- d W <- 0 f(3: 0), (7: 4) <f(7: 4), (3: 0) 7

4. Conjunto de Instruções – Aritmética e Lógica Mnemônico addlw k addwf f, d

4. Conjunto de Instruções – Aritmética e Lógica Mnemônico addlw k addwf f, d sublw k subwf f, d andlw k andwf f, d 1/17/2022 Descrição W + constante W+f W - constante W-f W & constante W&f Ricardo Pannain Operação W <- W + k d <- W + f W <- W + k d <- W - f W <- W & k d <- W & f Flag C, DC, Z Z Z 8

4. Conjunto de Instruções-Aritmética e Lógica –cont. Mnemônico iorlw k iorwf f, d xorlw

4. Conjunto de Instruções-Aritmética e Lógica –cont. Mnemônico iorlw k iorwf f, d xorlw k xorwf f, d incf f, d decf f, d 1/17/2022 Descrição W | constante W|f W xor constante W xor f incrementa f decrementa f Ricardo Pannain Operação Flag Z W <- W | k Z d <- W | f W <- W xor k Z d <- W xor f Z Z d <- f + 1 Z d <- f - 1 9

4. Conjunto de Instruções-Aritmética e Lógica –cont. Mnemônico rlf f, d rrf f, d

4. Conjunto de Instruções-Aritmética e Lógica –cont. Mnemônico rlf f, d rrf f, d comf f, d 1/17/2022 Descrição rotate left através do carry rotate right através do carry d <- complemento(f) Ricardo Pannain Flag C C Z 10

4. Conjunto de Instruções – Operações com Bit Mnemônico Descrição bcf f, b reseta

4. Conjunto de Instruções – Operações com Bit Mnemônico Descrição bcf f, b reseta bit b de f bsf f, d seta bit b de f 1/17/2022 Ricardo Pannain Operação f(b) <- 0 f(b) <- 1 Flag - 11

4. Conjunto de Instruções – Controle do fluxo de execução de um programa Mnemônico

4. 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 <- f -1, pula 1 instrução se zero - incfsz f, d d <- f +1, pula 1 instrução se zero - goto k vai para endereço k - call k chama sub-rotina no endereço k - 1/17/2022 Ricardo Pannain 12

4. Conjunto de Instruções – Controle do fluxo de execução de um programa -

4. Conjunto de Instruções – Controle do fluxo de execução de um programa - continuação Mnemônico return retlw k retfie 1/17/2022 Descrição retorna da sub-rotina retorna com constante em W retona de interrupção Ricardo Pannain Flag - 13

4. Conjunto de Instruções – outras Mnemônico Descrição nop no operation clrwdt limpa watchdog

4. Conjunto de Instruções – outras Mnemônico Descrição nop no operation clrwdt limpa watchdog timer sleep 1/17/2022 vai para o modo standby Ricardo Pannain Operação WDT <- 0, TO <- 1, PD <- 1 WDT <- 0, TO <- 1, PD <- 0 14

4. Conjunto de Instruções 1/17/2022 Ricardo Pannain 15

4. Conjunto de Instruções 1/17/2022 Ricardo Pannain 15

5. Programação Assembly • Programação do Microcontrolador 1/17/2022 Ricardo Pannain 16

5. Programação Assembly • Programação do Microcontrolador 1/17/2022 Ricardo Pannain 16

5. Programação Assembly • Linguagem assembly – – – 1/17/2022 Labels Instruções Operandos Diretivas

5. Programação Assembly • Linguagem assembly – – – 1/17/2022 Labels Instruções Operandos Diretivas Comentários Ricardo Pannain 17

5. Programação Assembly • Labels 1/17/2022 Ricardo Pannain 18

5. Programação Assembly • Labels 1/17/2022 Ricardo Pannain 18

5. Programação Assembly • Instruções 1/17/2022 Ricardo Pannain 19

5. Programação Assembly • Instruções 1/17/2022 Ricardo Pannain 19

5. Programação Assembly • Operandos 1/17/2022 Ricardo Pannain 20

5. Programação Assembly • Operandos 1/17/2022 Ricardo Pannain 20

5. Programação Assembly • Comentários (; ) clrf TMRO clrf INTCON bsf STATUS, RP

5. Programação Assembly • Comentários (; ) clrf TMRO clrf INTCON bsf STATUS, RP 0 movlw B’ 00110001’ ; TRMO = 0 ; interrupções e T 0 IF=0, desabilitados ; banco 1 pelo OPTION_REG ; escala 1: 4, borda de descida para clock ; externo, pull up na porta B ativada ; OPTION_REG <- W movwf OPTION_REG TO_OVFL btfss INTCON, T 0 IF ; 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 1/17/2022 Ricardo Pannain 21

5. Programação Assembly • Diretivas 1/17/2022 Ricardo Pannain 22

5. Programação Assembly • Diretivas 1/17/2022 Ricardo Pannain 22

5. Programação Assembly • Diretivas de Controle DIRETIVAS DESCRIÇÃO #define dá um significado p/

5. Programação Assembly • Diretivas de Controle 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 1/17/2022 Ricardo Pannain 23

5. Programação Assembly • Instruções Condicionais DIRETIVAS DESCRIÇÃO if branch condicional else alternativa para

5. Programação Assembly • Instruções Condicionais 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 1/17/2022 Ricardo Pannain 24

5. Programação Assembly • Diretivas de Dados DIRETIVAS DESCRIÇÃO cblock define um bloco de

5. Programação Assembly • Diretivas de Dados 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 1/17/2022 Ricardo Pannain 25

5. Programação Assembly • Diretivas de Configuração DIRETIVAS DESCRIÇÃO _config seta configuração de bits

5. Programação Assembly • Diretivas de Configuração DIRETIVAS DESCRIÇÃO _config seta configuração de bits processor define o tipo do microcontrolador 1/17/2022 Ricardo Pannain 26

5. Programação Assembly • Macros 1/17/2022 Ricardo Pannain 27

5. Programação Assembly • Macros 1/17/2022 Ricardo Pannain 27

5. Programação Assembly - Operadores 1/17/2022 Ricardo Pannain 28

5. Programação Assembly - Operadores 1/17/2022 Ricardo Pannain 28

5. Programação Assembly - Exemplo 1/17/2022 Ricardo Pannain 29

5. Programação Assembly - Exemplo 1/17/2022 Ricardo Pannain 29