• Home
  • Chat IA
  • Guru IA
  • Tutores
  • Central de ajuda
Home
Chat IA
Guru IA
Tutores

·

Engenharia Elétrica ·

Microprocessadores

· 2021/2

Envie sua pergunta para a IA e receba a resposta na hora

Recomendado para você

Slide Portas de I o-2021 2

21

Slide Portas de I o-2021 2

Microprocessadores

UFC

Slide Microcontrolador Pic16f628a-2021 2

27

Slide Microcontrolador Pic16f628a-2021 2

Microprocessadores

UFC

Microprocessadores assembly

3

Microprocessadores assembly

Microprocessadores

UFC

Atividades de Programação Assembler-2021 2

2

Atividades de Programação Assembler-2021 2

Microprocessadores

UFC

Atividade 1-2022 1

1

Atividade 1-2022 1

Microprocessadores

UFC

Listas Antigas-2021 2

7

Listas Antigas-2021 2

Microprocessadores

UFC

2 Avaliação Parcial-2020 2

2

2 Avaliação Parcial-2020 2

Microprocessadores

UFC

Paletização Automática Através de Braço Robótico Controlada por Microcontrolador Arduino

68

Paletização Automática Através de Braço Robótico Controlada por Microcontrolador Arduino

Microprocessadores

USU

Questão Aberta de Sistemas Digitais Microcontrolados Programa e Simulução

8

Questão Aberta de Sistemas Digitais Microcontrolados Programa e Simulução

Microprocessadores

UNIUBE

Lista de Exercicios MIPS - Programacao de Procedimentos e Interrupcoes

1

Lista de Exercicios MIPS - Programacao de Procedimentos e Interrupcoes

Microprocessadores

UMG

Texto de pré-visualização

1 Conjunto de Instruções do PIC 16F628A Instruções 2 Operações com Registradores ADDWF Descrição: Soma o conteúdo 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] Operação: (W) + (f) ==> (dest) Flags afetadas: C, DC, Z Exemplo: ADDWF REG,0 ; Antes: W = 0x17, REG = 0xC2 ; Depois: W = 0xD9, REG = 0xC2 ANDWF Descrição: Realiza a operação lógica AND entre o registo W e o registrador f. Se d é 0, o resultado armazena-se em W, Se d é 1 armazena-se em f. Sintaxe: ANDWF f,d Operandos: d - [0,1], f – [0, 127] Operação: (W) AND (f) ==> (dest) Flags afetadas: Z Exemplo: ANDWF REG,0 ; Antes: W = 0x25, REG = 0xF1 ; Depois: W = 0x21, REG = 0xF1 3 CLRF Descrição: O registrador f é carregado com 0x00. A flag Z é ativada. Sintaxe: CLRF f Operandos: f – [0, 127] Operação: 0x00 ==> (f), 1 ==> Z Flags afetadas: Z Exemplo: CLRF REG ; Antes: REG = 0x5A ; Depois: REG = 0x00, Z = 1 COMF Descrição: O registrador f é complementado. A flag Z é ativada se o resultado é 0. Se d é 0 o resultado é armazenado em W. Se d é 1 é armazenado em f. Sintaxe: COMF f,d Operandos: d - [0,1], f – [0, 127] Operação: (/f), 1 ==> 0 (dest), 0 ==> 1 (dest) Flags afetadas: Z Exemplo: COMF REG,0 ; Antes: REG = 0x13 ; Depois: REG = 0x13, W = 0xEC DECF Descrição: Decrementa de uma unidade o conteúdo de f. Se d é 0, o resultado é armazenado em W. Se d é 1 é armazenado em f. Sintaxe: DECF f,d Operandos: d - [0,1], f – [0, 127] Operação: (f ) - 1 ==> (dest) Flags afetadas: Z Exemplo: DECF CONT,1 ; Antes: CONT = 0x01, Z = 0 ; Depois: CONT = 0x00, Z = 1 DECFSZ Descrição: Decrementa o conteúdo do registrador f. Se d é 0, o resultado é armazenado em W. Se d é 1 é armazenado em f. Se o resultado é 0 salta uma instrução e a instrução é executada em 2 ciclos de máquina. Sintaxe: DECFSZ f,d Operandos: d - [0,1], f – [0, 127] Operação: (f) - 1 ==> d; Salta uma instrução Se Resultado = 0 Flags afetadas: nenhum Exemplo: DECFSZ REG,0 GOTO NO_ES_0 SI_ES_0 ; Instrução NO_ES_0 ; Salta instrução anterior 4 INCF Descrição: Incrementa de uma unidade o conteúdo de f. Se d é 0, o resultado é armazenado em W. Se d é 1 é armazenado em f. Sintaxe: INCF f,d Operandos: d - [0,1], f – [0, 127] Operação: (f ) + 1 ==> (dest) Flags afetadas: Z Exemplo: INCF CONT,1 ; Antes: CONT = 0xFF, Z = 0 ; Depois: CONT = 0x00, Z = 1 INCFSZ Descrição: Incrementa o conteúdo do registrador f. Se d é 0, o resultado é armazenado em W. Se d é 1 é armazenado em f. Se o resultado é 0 salta a instrução seguinte, em cujo caso demoraria 2 ciclos. Sintaxe: INCFSZ f,d Operandos: d - [0,1], f – [0, 127] Operação: (f) -1 ==> d; Salta instrução Se Resultado = 0 Flags afetadas: nenhum Exemplo: INCFSC REG,0 GOTO NO_ES_0 SI_ES_0 ; instrução NO_ES_0 ; Salta instrução anterior IORWF Descrição: Realiza a operação lógica OR entre os registradores W e f. Se d é 0, o resultado é armazenado em W. Se d é 1 é armazenado em f. Sintaxe: IORWF f,d Operandos: d - [0,1], f – [0, 127] Operação: (W) OR (f) ==> (dest) Flags afetadas: Z Exemplo: IORWF REG,0 ; Antes: W = 0x91, REG = 0x13 ; Depois: W = 0x93, REG = 0x13 MOVF Descrição: O conteúdo do registrador f é movido para o destino dependendo de d. Se d é 0, o resultado é armazenado em W. Se d é 1 é armazenado em f. Quando d é 1 permite verificar o registrador, já que afeta Z. Sintaxe: MOVF f,d Operandos: d - [0,1], f – [0, 127] Operação: (f) ==> (dest) Flags afetadas: Z Exemplo: MOVF REG,0 ; Depois: W = REG 5 MOVWF Descrição: O conteúdo do registrador W passa para o registrador f. Sintaxe: MOVWF f Operandos: f – [0, 127] Operação: W ==> (f) Flags afetadas: nenhum Exemplo: MOVWF REG ; Antes: REG = 0xFF, W = 0x4F ; Depois: REG = 0x4F, W = 0x4F RLF Descrição: O conteúdo de f é rotacionado à esquerda. O bit de maior peso de f passa para o carry (C), e o carry é colocado no bit de f de menor peso. Se d é 0, o resultado é armazenado em W. Se d é 1 é armazenado em f. Sintaxe: RLF f,d Operandos: d - [0,1], f – [0, 127] Operação: Rotação à esquerda Flags afetadas: C Exemplo: RLF REG,0 ; Antes: REG = 1110 0110, C = 0 ; Depois: REG = 1110 0110, W = 1100 1100, C = 1 RRF Descrição: O conteúdo 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] Operação: Rotação à direita Flags afetadas: C Exemplo: RRF REG,0 ; Antes: REG = 1110 0110, C = 1 ; Depois: REG = 1110 0110, W = 1111 0011, C = 0 SUBWF Descrição: Mediante o método do complemento de dois, o conteúdo de W é subtraído ao de f. Se d é 0, o resultado é armazenado em W. Se d é 1 é armazenado em f. Sintaxe: SUBWF f,d Operandos: d - [0,1], f – [0, 127] Operação: ( f ) - (W )==> (dest) Flags afetadas: C, DC, Z Exemplo: SUBWF REG,1 ; Antes: REG = 0x03, W = 0x02, C = ? ; Depois:REG = 0x01, W = 0x4F, C = 1 6 SWAPF Descrição: Os 4 bits de maior peso e os 4 de menor são trocados. Se d é 0, o resultado é armazenado em W. Se d é 1 é armazenado em f. Sintaxe: SWAPF f,d Operandos: d - [0,1], f – [0, 127] Operação: (f <3: 0>) (f <7:4>) Flags afetadas: nenhum Exemplo: SWAPF REG,0 ; Antes: REG = 0xA5 ; Depois: REG = 0xA5, W = 0x5A XORWF Descrição: Realiza a operação lógica XOR entre os registradores W e f. Se d é 0, o resultado é armazenado em W. Se d é 1 é armazenado em f. Sintaxe: XORWF f,d Operandos: d - [0,1], f – [0, 127] Operação: (W) XOR (f) ==> (dest) Flags afetadas: Z Exemplo: XORWF REG,0 ; Antes: W = 0xB5, REG = 0xAF ; Depois: W = 0xB5, REG = 0x1A Operações com Literais 7 ADDLW Descrição: Soma o conteúdo do registrador W e do literal k, guardando o resultado em W. Sintaxe: ADDLW k Operandos: k – [0, 255] Operação: (W) + (k)==> (W) Flags afetadas: C, DC, Z Exemplo: ADDLW 0xC2 ; Antes: W = 0x17 ; Depois: W = 0xD9 ANDLW Descrição: Realiza a operação lógica AND entre o conteúdo do registrador W e o literal k, guardando o resultado em W. Sintaxe: ANDLW k Operandos: k – [0, 255] Operação: (W) AND (k)==> (W) Flags afetadas: Z Exemplo: ADDLW 0xC2 ; Antes: W = 0x17 ; Depois: W = 0xD9 IORLW Descrição: Realiza a operação lógica OR entre o conteúdo do registrador W e o literal k, guardando o resultado em W. Sintaxe: IORLW k Operandos: k – [0, 255] Operação: (W) OR (k)==> (W) Flags afetadas: Z Exemplo: IORLW 0x35 ; Antes: W = 0x9A ; Depois: W = 0xBF MOVLW Descrição: O literal k é armazenado no registrador W. Sintaxe: MOVLW k Operandos: k – [0, 255] Operação: (k) ==> (W) Flags afetadas: nenhum Exemplo: MOVLW 0x5A ; Depois: REG = 0x4F, W = 0x5A 8 SUBLW Descrição: Mediante o método do complemento de dois o conteúdo de W é subtraído do literal k. O resultado é armazenado em W. Sintaxe: SUBLW k Operandos: k – [0, 255] Operação: ( k ) - (W) ==> (W) Flags afetadas: Z, C, DC Exemplo: SUBLW 0x02 ; Antes: W=1,C=?; Depois: W=1 ,C=1 ; Antes: W=3,C=?; Depois: W=FF,C=0 (resultado é negativo) XORLW Descrição: Realiza a operação lógica XOR entre o conteúdo do registrador W e do literal k, guardando o resultado em W. Sintaxe: XORLW k Operandos: k – [0, 255] Operação: (W) XOR (k)==> (W) Flags afetadas: Z Exemplo: XORLW 0xAF ; Antes: W = 0xB5 ; Depois: W = 0x1A Operações com Bits 9 BCF Descrição: Apaga o bit b do registrador f Sintaxe: BCF f,b Operandos: f – [0, 127], b – [0, 7] Operação: 0 ==> (f<b>) Flags afetadas: nenhum Exemplo: BCF REG,7 ; Antes: REG = 0xC7 ; Depois: REG = 0x47 BSF Descrição: Ativa (seta) o bit b do registrador f Sintaxe: BSF f,b Operandos: f – [0, 127], b – [0, 7] Operação: 1 ==> (f<b>) Flags afetadas: nenhum Exemplo: BSF REG,7 ; Antes: REG = 0x0A ; Depois: REG = 0x8A BTFSC Descrição: Se o bit b do registrador f é 0, salta uma instrução e continua com a execução. Sintaxe: BTFSC f,b Operandos: f – [0, 127], b – [0, 7] Operação: Salto Se (f<b>) = 0 Flags afetadas: nenhum Exemplo: BTFSC REG,6 GOTO NO_ES_0 SI_ES_0 ; instrução NO_ES_0 ; instrução BTFSS Descrição: Se o bit b do registrador f é 1, salta uma instrução e continua com a execução. Sintaxe: BTFSS f,b Operandos: f – [0, 127], b – [0, 7] Operação: Salto Se (f<b>) = 1 Flags afetadas: nenhum Exemplo: BTFSS REG,6 GOTO BIT_NAO_E_1 BIT_SIM_E_1 ; instrução BIT_NAO_E_1 ; instrução 10 Operações de Controle CLRW Descrição: O registrador de trabalho W é carregado com 0x00. A flag Z é ativada (setada). Sintaxe: CLRW Operandos: nenhum Operação: 0x00 ==> W, 1 ==> Z Flags afetadas: Z Exemplo: CLRW ; Antes: W = 0x5A ; Depois: W = 0x00, Z = 1 NOP Descrição: Não realiza nenhuma operação. Na realidade consome um ciclo de instrução sem fazer nada. Sintaxe: NOP Operandos: nenhum Operação: No operar Flags afetadas: nenhum Exemplo: NOP 11 CALL Descrição: Salta para uma subrotina. A parte baixa de k é carregada em PCL, e a alta em PCLATCH. Ocupa 2 ciclos de máquina. Sintaxe: CALL k Operandos: k – [0, 2047] Operação: PC ==> pilha; k ==> PC Flags afetadas: nenhum Exemplo: ORIGEM CALL DESTINO ; Antes: PC = ORIGEM ; Depois: PC = DESTINO CLRWDT Descrição: Esta instrução apaga tanto o WDT como o seu preescaler. Os bits /TO e /PD do registrador de estado (STATUS) são colocados em 1 (setados). Sintaxe: CLRWDT Operandos: nenhum Operação: 0x00 ==> WDT, 1 ==> /TO, 1 ==> /PD Flags afetadas: /TO, /PD Exemplo: CLRWDT ; Depois: Contador WDT = 0, WDT = 0, /TO = 1, /PD = 1 GOTO Descrição: Trata-se de um salto incondicional. A parte baixa de k é carregada em PCL, e a alta em PCLATCH. Ocupa 2 ciclos de máquina. Sintaxe: GOTO k Operandos: k – [0, 2047] Operação: k ==> PC <8:0> Flags afetadas: nenhum Exemplo: ORIGEM GOTO DESTINO ; Antes: PC = ORIGEM ; Depois: PC = DESTINO RETFIE Descrição: o PC é carregado com o conteúdo de cima da pilha (TOS): endereço de regresso. Consome 2 ciclos. As interrupções voltam a ser habilitadas. Sintaxe: RETFIE Operandos: nenhum Operação: 1 ==> GIE; TOS==>PC Flags afetadas: nenhum Exemplo: RETFIE ; Depois: PC = direcção de regresso, GIE = 1 12 RETLW Descrição: O registrador W é carregado com o literal k. O PC é carregado com o conteúdo de cima da pilha (TOS): endereço de regresso. Consome 2 ciclos. Sintaxe: RETLW k Operandos: k – [0, 255] Operação: (k)==> (W); TOS==>PC Flags afetadas: nenhum Exemplo: RETLW 0x37 ; Depois: PC = direcção de regresso, W = 0x37 RETURN Descrição: O PC é carregado com o conteúdo de cima da pilha (TOS): endereço de regresso. Consome 2 ciclos. Sintaxe: RETURN Operandos: nenhum Operação: TOS ==> PC Flags afetadas: nenhum Exemplo: RETURN ; Depois: PC = direcção de regresso SLEEP Descrição: O bit de energia (/PD) é colocado em 0, e o de descanso (/TO) em 1. O WDT e o seu preescaler são apagados. o micro pára o oscilador, reduzindo o consumo de energia. Sintaxe: SLEEP Operandos: nenhum Operação: 0x00==>WDT, 1 ==> /TO, 0 ==> WDT Preescaler, 0 ==> /PD Flags afetadas: /PD, /TO Exemplo: SLEEP ; Preescales WDT = 0, /TO = 1, /PD = 1

Envie sua pergunta para a IA e receba a resposta na hora

Recomendado para você

Slide Portas de I o-2021 2

21

Slide Portas de I o-2021 2

Microprocessadores

UFC

Slide Microcontrolador Pic16f628a-2021 2

27

Slide Microcontrolador Pic16f628a-2021 2

Microprocessadores

UFC

Microprocessadores assembly

3

Microprocessadores assembly

Microprocessadores

UFC

Atividades de Programação Assembler-2021 2

2

Atividades de Programação Assembler-2021 2

Microprocessadores

UFC

Atividade 1-2022 1

1

Atividade 1-2022 1

Microprocessadores

UFC

Listas Antigas-2021 2

7

Listas Antigas-2021 2

Microprocessadores

UFC

2 Avaliação Parcial-2020 2

2

2 Avaliação Parcial-2020 2

Microprocessadores

UFC

Paletização Automática Através de Braço Robótico Controlada por Microcontrolador Arduino

68

Paletização Automática Através de Braço Robótico Controlada por Microcontrolador Arduino

Microprocessadores

USU

Questão Aberta de Sistemas Digitais Microcontrolados Programa e Simulução

8

Questão Aberta de Sistemas Digitais Microcontrolados Programa e Simulução

Microprocessadores

UNIUBE

Lista de Exercicios MIPS - Programacao de Procedimentos e Interrupcoes

1

Lista de Exercicios MIPS - Programacao de Procedimentos e Interrupcoes

Microprocessadores

UMG

Texto de pré-visualização

1 Conjunto de Instruções do PIC 16F628A Instruções 2 Operações com Registradores ADDWF Descrição: Soma o conteúdo 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] Operação: (W) + (f) ==> (dest) Flags afetadas: C, DC, Z Exemplo: ADDWF REG,0 ; Antes: W = 0x17, REG = 0xC2 ; Depois: W = 0xD9, REG = 0xC2 ANDWF Descrição: Realiza a operação lógica AND entre o registo W e o registrador f. Se d é 0, o resultado armazena-se em W, Se d é 1 armazena-se em f. Sintaxe: ANDWF f,d Operandos: d - [0,1], f – [0, 127] Operação: (W) AND (f) ==> (dest) Flags afetadas: Z Exemplo: ANDWF REG,0 ; Antes: W = 0x25, REG = 0xF1 ; Depois: W = 0x21, REG = 0xF1 3 CLRF Descrição: O registrador f é carregado com 0x00. A flag Z é ativada. Sintaxe: CLRF f Operandos: f – [0, 127] Operação: 0x00 ==> (f), 1 ==> Z Flags afetadas: Z Exemplo: CLRF REG ; Antes: REG = 0x5A ; Depois: REG = 0x00, Z = 1 COMF Descrição: O registrador f é complementado. A flag Z é ativada se o resultado é 0. Se d é 0 o resultado é armazenado em W. Se d é 1 é armazenado em f. Sintaxe: COMF f,d Operandos: d - [0,1], f – [0, 127] Operação: (/f), 1 ==> 0 (dest), 0 ==> 1 (dest) Flags afetadas: Z Exemplo: COMF REG,0 ; Antes: REG = 0x13 ; Depois: REG = 0x13, W = 0xEC DECF Descrição: Decrementa de uma unidade o conteúdo de f. Se d é 0, o resultado é armazenado em W. Se d é 1 é armazenado em f. Sintaxe: DECF f,d Operandos: d - [0,1], f – [0, 127] Operação: (f ) - 1 ==> (dest) Flags afetadas: Z Exemplo: DECF CONT,1 ; Antes: CONT = 0x01, Z = 0 ; Depois: CONT = 0x00, Z = 1 DECFSZ Descrição: Decrementa o conteúdo do registrador f. Se d é 0, o resultado é armazenado em W. Se d é 1 é armazenado em f. Se o resultado é 0 salta uma instrução e a instrução é executada em 2 ciclos de máquina. Sintaxe: DECFSZ f,d Operandos: d - [0,1], f – [0, 127] Operação: (f) - 1 ==> d; Salta uma instrução Se Resultado = 0 Flags afetadas: nenhum Exemplo: DECFSZ REG,0 GOTO NO_ES_0 SI_ES_0 ; Instrução NO_ES_0 ; Salta instrução anterior 4 INCF Descrição: Incrementa de uma unidade o conteúdo de f. Se d é 0, o resultado é armazenado em W. Se d é 1 é armazenado em f. Sintaxe: INCF f,d Operandos: d - [0,1], f – [0, 127] Operação: (f ) + 1 ==> (dest) Flags afetadas: Z Exemplo: INCF CONT,1 ; Antes: CONT = 0xFF, Z = 0 ; Depois: CONT = 0x00, Z = 1 INCFSZ Descrição: Incrementa o conteúdo do registrador f. Se d é 0, o resultado é armazenado em W. Se d é 1 é armazenado em f. Se o resultado é 0 salta a instrução seguinte, em cujo caso demoraria 2 ciclos. Sintaxe: INCFSZ f,d Operandos: d - [0,1], f – [0, 127] Operação: (f) -1 ==> d; Salta instrução Se Resultado = 0 Flags afetadas: nenhum Exemplo: INCFSC REG,0 GOTO NO_ES_0 SI_ES_0 ; instrução NO_ES_0 ; Salta instrução anterior IORWF Descrição: Realiza a operação lógica OR entre os registradores W e f. Se d é 0, o resultado é armazenado em W. Se d é 1 é armazenado em f. Sintaxe: IORWF f,d Operandos: d - [0,1], f – [0, 127] Operação: (W) OR (f) ==> (dest) Flags afetadas: Z Exemplo: IORWF REG,0 ; Antes: W = 0x91, REG = 0x13 ; Depois: W = 0x93, REG = 0x13 MOVF Descrição: O conteúdo do registrador f é movido para o destino dependendo de d. Se d é 0, o resultado é armazenado em W. Se d é 1 é armazenado em f. Quando d é 1 permite verificar o registrador, já que afeta Z. Sintaxe: MOVF f,d Operandos: d - [0,1], f – [0, 127] Operação: (f) ==> (dest) Flags afetadas: Z Exemplo: MOVF REG,0 ; Depois: W = REG 5 MOVWF Descrição: O conteúdo do registrador W passa para o registrador f. Sintaxe: MOVWF f Operandos: f – [0, 127] Operação: W ==> (f) Flags afetadas: nenhum Exemplo: MOVWF REG ; Antes: REG = 0xFF, W = 0x4F ; Depois: REG = 0x4F, W = 0x4F RLF Descrição: O conteúdo de f é rotacionado à esquerda. O bit de maior peso de f passa para o carry (C), e o carry é colocado no bit de f de menor peso. Se d é 0, o resultado é armazenado em W. Se d é 1 é armazenado em f. Sintaxe: RLF f,d Operandos: d - [0,1], f – [0, 127] Operação: Rotação à esquerda Flags afetadas: C Exemplo: RLF REG,0 ; Antes: REG = 1110 0110, C = 0 ; Depois: REG = 1110 0110, W = 1100 1100, C = 1 RRF Descrição: O conteúdo 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] Operação: Rotação à direita Flags afetadas: C Exemplo: RRF REG,0 ; Antes: REG = 1110 0110, C = 1 ; Depois: REG = 1110 0110, W = 1111 0011, C = 0 SUBWF Descrição: Mediante o método do complemento de dois, o conteúdo de W é subtraído ao de f. Se d é 0, o resultado é armazenado em W. Se d é 1 é armazenado em f. Sintaxe: SUBWF f,d Operandos: d - [0,1], f – [0, 127] Operação: ( f ) - (W )==> (dest) Flags afetadas: C, DC, Z Exemplo: SUBWF REG,1 ; Antes: REG = 0x03, W = 0x02, C = ? ; Depois:REG = 0x01, W = 0x4F, C = 1 6 SWAPF Descrição: Os 4 bits de maior peso e os 4 de menor são trocados. Se d é 0, o resultado é armazenado em W. Se d é 1 é armazenado em f. Sintaxe: SWAPF f,d Operandos: d - [0,1], f – [0, 127] Operação: (f <3: 0>) (f <7:4>) Flags afetadas: nenhum Exemplo: SWAPF REG,0 ; Antes: REG = 0xA5 ; Depois: REG = 0xA5, W = 0x5A XORWF Descrição: Realiza a operação lógica XOR entre os registradores W e f. Se d é 0, o resultado é armazenado em W. Se d é 1 é armazenado em f. Sintaxe: XORWF f,d Operandos: d - [0,1], f – [0, 127] Operação: (W) XOR (f) ==> (dest) Flags afetadas: Z Exemplo: XORWF REG,0 ; Antes: W = 0xB5, REG = 0xAF ; Depois: W = 0xB5, REG = 0x1A Operações com Literais 7 ADDLW Descrição: Soma o conteúdo do registrador W e do literal k, guardando o resultado em W. Sintaxe: ADDLW k Operandos: k – [0, 255] Operação: (W) + (k)==> (W) Flags afetadas: C, DC, Z Exemplo: ADDLW 0xC2 ; Antes: W = 0x17 ; Depois: W = 0xD9 ANDLW Descrição: Realiza a operação lógica AND entre o conteúdo do registrador W e o literal k, guardando o resultado em W. Sintaxe: ANDLW k Operandos: k – [0, 255] Operação: (W) AND (k)==> (W) Flags afetadas: Z Exemplo: ADDLW 0xC2 ; Antes: W = 0x17 ; Depois: W = 0xD9 IORLW Descrição: Realiza a operação lógica OR entre o conteúdo do registrador W e o literal k, guardando o resultado em W. Sintaxe: IORLW k Operandos: k – [0, 255] Operação: (W) OR (k)==> (W) Flags afetadas: Z Exemplo: IORLW 0x35 ; Antes: W = 0x9A ; Depois: W = 0xBF MOVLW Descrição: O literal k é armazenado no registrador W. Sintaxe: MOVLW k Operandos: k – [0, 255] Operação: (k) ==> (W) Flags afetadas: nenhum Exemplo: MOVLW 0x5A ; Depois: REG = 0x4F, W = 0x5A 8 SUBLW Descrição: Mediante o método do complemento de dois o conteúdo de W é subtraído do literal k. O resultado é armazenado em W. Sintaxe: SUBLW k Operandos: k – [0, 255] Operação: ( k ) - (W) ==> (W) Flags afetadas: Z, C, DC Exemplo: SUBLW 0x02 ; Antes: W=1,C=?; Depois: W=1 ,C=1 ; Antes: W=3,C=?; Depois: W=FF,C=0 (resultado é negativo) XORLW Descrição: Realiza a operação lógica XOR entre o conteúdo do registrador W e do literal k, guardando o resultado em W. Sintaxe: XORLW k Operandos: k – [0, 255] Operação: (W) XOR (k)==> (W) Flags afetadas: Z Exemplo: XORLW 0xAF ; Antes: W = 0xB5 ; Depois: W = 0x1A Operações com Bits 9 BCF Descrição: Apaga o bit b do registrador f Sintaxe: BCF f,b Operandos: f – [0, 127], b – [0, 7] Operação: 0 ==> (f<b>) Flags afetadas: nenhum Exemplo: BCF REG,7 ; Antes: REG = 0xC7 ; Depois: REG = 0x47 BSF Descrição: Ativa (seta) o bit b do registrador f Sintaxe: BSF f,b Operandos: f – [0, 127], b – [0, 7] Operação: 1 ==> (f<b>) Flags afetadas: nenhum Exemplo: BSF REG,7 ; Antes: REG = 0x0A ; Depois: REG = 0x8A BTFSC Descrição: Se o bit b do registrador f é 0, salta uma instrução e continua com a execução. Sintaxe: BTFSC f,b Operandos: f – [0, 127], b – [0, 7] Operação: Salto Se (f<b>) = 0 Flags afetadas: nenhum Exemplo: BTFSC REG,6 GOTO NO_ES_0 SI_ES_0 ; instrução NO_ES_0 ; instrução BTFSS Descrição: Se o bit b do registrador f é 1, salta uma instrução e continua com a execução. Sintaxe: BTFSS f,b Operandos: f – [0, 127], b – [0, 7] Operação: Salto Se (f<b>) = 1 Flags afetadas: nenhum Exemplo: BTFSS REG,6 GOTO BIT_NAO_E_1 BIT_SIM_E_1 ; instrução BIT_NAO_E_1 ; instrução 10 Operações de Controle CLRW Descrição: O registrador de trabalho W é carregado com 0x00. A flag Z é ativada (setada). Sintaxe: CLRW Operandos: nenhum Operação: 0x00 ==> W, 1 ==> Z Flags afetadas: Z Exemplo: CLRW ; Antes: W = 0x5A ; Depois: W = 0x00, Z = 1 NOP Descrição: Não realiza nenhuma operação. Na realidade consome um ciclo de instrução sem fazer nada. Sintaxe: NOP Operandos: nenhum Operação: No operar Flags afetadas: nenhum Exemplo: NOP 11 CALL Descrição: Salta para uma subrotina. A parte baixa de k é carregada em PCL, e a alta em PCLATCH. Ocupa 2 ciclos de máquina. Sintaxe: CALL k Operandos: k – [0, 2047] Operação: PC ==> pilha; k ==> PC Flags afetadas: nenhum Exemplo: ORIGEM CALL DESTINO ; Antes: PC = ORIGEM ; Depois: PC = DESTINO CLRWDT Descrição: Esta instrução apaga tanto o WDT como o seu preescaler. Os bits /TO e /PD do registrador de estado (STATUS) são colocados em 1 (setados). Sintaxe: CLRWDT Operandos: nenhum Operação: 0x00 ==> WDT, 1 ==> /TO, 1 ==> /PD Flags afetadas: /TO, /PD Exemplo: CLRWDT ; Depois: Contador WDT = 0, WDT = 0, /TO = 1, /PD = 1 GOTO Descrição: Trata-se de um salto incondicional. A parte baixa de k é carregada em PCL, e a alta em PCLATCH. Ocupa 2 ciclos de máquina. Sintaxe: GOTO k Operandos: k – [0, 2047] Operação: k ==> PC <8:0> Flags afetadas: nenhum Exemplo: ORIGEM GOTO DESTINO ; Antes: PC = ORIGEM ; Depois: PC = DESTINO RETFIE Descrição: o PC é carregado com o conteúdo de cima da pilha (TOS): endereço de regresso. Consome 2 ciclos. As interrupções voltam a ser habilitadas. Sintaxe: RETFIE Operandos: nenhum Operação: 1 ==> GIE; TOS==>PC Flags afetadas: nenhum Exemplo: RETFIE ; Depois: PC = direcção de regresso, GIE = 1 12 RETLW Descrição: O registrador W é carregado com o literal k. O PC é carregado com o conteúdo de cima da pilha (TOS): endereço de regresso. Consome 2 ciclos. Sintaxe: RETLW k Operandos: k – [0, 255] Operação: (k)==> (W); TOS==>PC Flags afetadas: nenhum Exemplo: RETLW 0x37 ; Depois: PC = direcção de regresso, W = 0x37 RETURN Descrição: O PC é carregado com o conteúdo de cima da pilha (TOS): endereço de regresso. Consome 2 ciclos. Sintaxe: RETURN Operandos: nenhum Operação: TOS ==> PC Flags afetadas: nenhum Exemplo: RETURN ; Depois: PC = direcção de regresso SLEEP Descrição: O bit de energia (/PD) é colocado em 0, e o de descanso (/TO) em 1. O WDT e o seu preescaler são apagados. o micro pára o oscilador, reduzindo o consumo de energia. Sintaxe: SLEEP Operandos: nenhum Operação: 0x00==>WDT, 1 ==> /TO, 0 ==> WDT Preescaler, 0 ==> /PD Flags afetadas: /PD, /TO Exemplo: SLEEP ; Preescales WDT = 0, /TO = 1, /PD = 1

Sua Nova Sala de Aula

Sua Nova Sala de Aula

Empresa

Central de ajuda Contato Blog

Legal

Termos de uso Política de privacidade Política de cookies Código de honra

Baixe o app

4,8
(35.000 avaliações)
© 2025 Meu Guru®