AULA 03 ASSUNTO: CONJUNTO DE INSTRUÇÕES ROTEIRO 1. Introdução

Slides:



Advertisements
Apresentações semelhantes
Chapter Six Pipelining
Advertisements

Chapter Five The Processor: Datapath and Control (Parte B: multiciclo)
1998 Morgan Kaufmann Publishers Mario Côrtes - MO401 - IC/Unicamp- 2004s2 Ch5A-1 Chapter Five The Processor: Datapath and Control.
Conjunto de Instruções MIPS
A Arquitetura: conjunto de instruções
Sistemas Embarcados Microcontroladores PIC
Introdução a circuitos lógicos
A.4. Trabalhando com elementos de biblioteca STL – Standard Template Libraby Disponibiliza um conjunto de classes templates, provendo algoritmos eficientes.
PICmicro Microcontrolador
CIRCUITOS ELETRÔNICOS EMBARCADOS PSI2612 AULA 03 ASSUNTO: CONJUNTO DE INSTRUÇÕES ROTEIRO 1. Introdução 2, Descrição das Instruções 3. Exemplos 4. Complementos.
Fundamentos de Eletrônica Digital
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia da Computação – CECOMP PIC16F877A - Parte III Jadsonlee da Silva Sá
Agenda - Aula 2 Introdução (Computador Digital) Processadores
Prof Afonso Ferreira Miguel
Microprocessadores 8051 – Aula 3 Interrupção
Disciplina: Microcontroladores Prof. Remy Eskinazi, MSc
Disciplina: Microcontroladores Prof. Remy Eskinazi, MSc
8 - 1 Organização Básica de Computadores e Linguagem de Montagem Ricardo Pannain ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM A pilha e subrotinas.
Parte 3 Seção de Dados e Unidade de Controle
O Stack e Subrotinas Permitem reusar o código Escreva e depure o código uma vez, use-o quantas vezes for preciso Uma Subrotina deve ser chamada Uma Subrotina.
Arquitetura do ARM RISC (Reduced Instruction Set Computer) – Conjunto relativamente grande de registradores – Modelo “load/store “de processamento Operações.
Prof. André Luis Roland Tancredo Engenheiro da Computação e Pesquisador em Desenvolvimento Tecnológico para Semicondutores pelo CNPq Especialista em Microeletrônica.
Verilog HDL. Introduzida em 1985 pela Gateway Design System Corporation Após 1990, passou a ser de domínio público, e em 1995 passou a ser padrão IEEE.
Ney Laert Vilar Calazans Exemplo de Apresentação de TP1 Descrição Resumida de uma Arquitetura de Processador: o estudo de caso do Intel 8086 ORGANIZAÇÃO.
AULA 3 INSTRUÇÕES UTILIZADAS NO MICROCONTROLADOR.
MAPA DE MEMÓRIA E REGISTRADORES ESPECIAIS AULA 5.
INTRODUÇÃO: MICROCONTROLADORES. MICROCONTROLADOR X MICROPROCESSADOR Baixa capacidade de processamento Freq. Operação em MHz Custo de USD 7,00 a 30,00.
Rganização de Computadores Organização do Neander Capítulo 10 – Raul Weber Organização de Computadores Organização do Neander Capítulo 10 – Raul Weber.
Programação em Assembly Conceitos Iniciais Prof. Luiz Antonio Rodrigues Prof. Luiz Antonio Unioeste - Cascavel Jpanel e Diagramadores.
MIPS Monociclo (MIPS_V0) Estrutura e Implementação em VHDL Fernando Moraes 03/maio/2011 Revisada por Ney Calazans em agosto/2016.
Mapa de memória e registadores especiais. Mapa de memória.
ARQUITETURA AULA 3 Prof. Luiz Ricardo Lima 2º sem de 2016.
Microcontroladores PIC
VARIÁVEIS EM C Dilvan Moreira.
Programação em Assembly
Ciclos de operação em processador
PSI3441 – Arquitetura de Sistemas Embarcados
NEANDERWin - Simulador
Arquitetura e Assembly*
Banco de Registradores e ALU
Aspectos de Interrupção
Mapeamento de Entrada e Saída em Sistemas Digitais
Arduino seu primeiro microcontrolador
PSI3441 – Arquitetura de Sistemas Embarcados
Computador MIPS Organização básica e conjunto de instruções.
Soquetes (1) SOCKET Uma interface local, criada por aplicações, ponto final de comunicação no qual os processos de aplicação podem tanto enviar quanto.
Memórias cache CPU procura por dados em L1, depois em L2 e finalmente na memória principal CPU registradores ALU L1 cache barramento de cache barramento.
The painting depicts in the lower area a prison
Teste e Qualidade de Software
Arquitetura e Assembly*
LINGUAGENS DE PROGRAMAÇÃO
Arquitetura e organização de computadores
Arquitetura e Assembly*
Aplicações de Flip-Flops Registradores
Funcionamento básico de um processador de 8 bits
Ney Laert Vilar Calazans
Microprocessadores e Microcontroladores
Arquitetura 8051 Disciplina: Microcontroladores Prof. Remy Eskinazi
Grammar Reference Simple Future Future Continuous Upgrade 2 - Unit 2
Determinou o endereço de A
Bus de controlo Bus de Endereços Bus de dados SET LIGADO ENABLE LIGADO.
PSI3441 – Arquitetura de Sistemas Embarcados
Developing a Hypothesis
Introduction to density estimation Modelação EcoLÓGICA
Student #1: Go to the board and write a word.
Chapter Six Pipelining Harzard
Conjunto de instruções
Pesquisadores envolvidos Recomenda-se Arial 20 ou Times New Roman 21.
Chapter 3 Instructions: Language of the Machine
Why Moringa Delight? Perfection in Growing and Processing We produce the highest quality Moringa under perfect growing conditions on the largest Moringa.
Transcrição da apresentação:

AULA 03 ASSUNTO: CONJUNTO DE INSTRUÇÕES ROTEIRO 1. Introdução 2, Descrição das Instruções 3. Exemplos 4. Complementos do hardware

1. INTRODUÇÃO NÚMERO DE INSTRUÇÕES : 35 GRUPOS > Operações envolvendo todo o byte dos registradores: 18 > Operações envolvendo apenas um bit dos registradores: 4 > Operações com valores literais ou de controle: 13 Transmitter (USART/SCI) with 9-bit address detection PIC16F877/874

TABELA 15-1:DESCRIÇÃO DOS CÖDIGOS UTILIZADOS NOS CAMPOS DAS INSTRUÇÕES

FIGURA 13.1: FORMATO GERAL PARA AS INSTRUÇÕES

TABELA 13-2 : CONJUNTO DE INSTRUÇÕES DO PIC

TABELA 13-2 :CONJUNTO DE INSTRUÇÕES DO PIC

TABELA 13-2 :CONJUNTO DE INSTRUÇÕES DO PIC

2. CONJUNTO DE INSTRUÇÕES DESCRIÇÃO

DESCRIÇÃO DA INSTRUÇÃO ADDWF ADDWF Add W and F ---------------------------------------------------- Syntax: [label] ADDWF f,d  Operands: 0  f  127 d  [0,1] Operation: (W) + (f) (destination) Status Affected: C, DC, Z Description: Add the contents of the W register with register ’f’. If ’d’ is 0, the resultis stored in the W register. If ’d’ is1, the result is stored back in register ’f’.

DESCRIÇÃO DA INSTRUÇÃO SUBWF SUBWF Subtract W from f --------------------------------------------------------------------- Syntax: [ label ] SUBWF f,d Operands: 0  f  127 d  [0,1] Operation: (f) - (W) (destination) Status Affected: C, DC, Z Description Subtract (2’s complement method) W register from register 'f'. If 'd' is 0, the result is stored in the W register. If 'd' is 1, the result is stored back in register 'f'.

DESCRIÇÃO DA INSTRUÇÃO ANDWF ANDWF AND W with f --------------------------------------------------------- Syntax: [label] ANDWF f,d Operands: 0  f  127 d  [0,1] Operation: (W) .AND. (f)  (destination) Status Affected: Z Description: AND the W register with register 'f'. If 'd’ is 0, the result is stored in the W register. If 'd' is 1, the result is stored back in register 'f'.

DESCRIÇÃO DA INSTRUÇÃO IORWF IORWF Inclusive OR W with f ---------------------------------------------------------------------------- Syntax: [ label ] IORWF f,d Operands: 0  f  127 d  [0,1] Operation: (W) .OR. (f) (destination) Status Affected: Z Description: Inclusive OR the W register with register 'f'. If 'd' is 0 the result is placed in the W register. If 'd' is 1 the result is placed back in register 'f'.

DESCRIÇÃO DA INSTRUÇÃO XORWF XORWF Exclusive OR W with f ---------------------------------------------------------------------- Syntax: [label] XORWF f,d Operands: 0  f  127 d  [0,1] Operation: (W) .XOR. (f)  (destination) Status Affected Z Description: Exclusive OR the contents of the W register with register 'f'. If 'd' is 0, the result is stored in the W register. If 'd' is 1, the result is stored back in register 'f'.

DESCRIÇÃO DA INSTRUÇÃO MOVF MOVF Move f ----------------------------------------------------------------------- Syntax: [ label ] MOVF f,d Operands: 0  f  127 d  [0,1] Operation: (f)  (destination) Status Affected: Z Description: The contents of register f are moved to a destination dependant upon the status of d. If d = 0, destination is W register. If d = 1, the destination is file register f itself. d = 1 is useful to test a file register, since status flag Z is affected.

DESCRIÇÃO DA INSTRUÇÃO MOVWF MOVWF Move W to f -------------------------------------------------------- Syntax: [ label ] MOVWF f Operands: 0  f  127 Operation: (W)  (f) Status Affected: None Description: Move data from W register to register 'f'.

DESCRIÇÃO DA INSTRUÇÃO CLRF CLRF Clear f ------------------------------------------------ Syntax: [label] CLRF f Operands: 0  f  127 Operation: 00h (f) 1  Z Status Affected: Z Description: The contents of register ’f’ are cleared and the Z bit is set.

DESCRIÇÃO DA INSTRUÇÃO CLRW CLRW Clear W --------------------------------------------------------------- Syntax: [ label ] CLRW Operands: None Operation: 00h (W) 1  Z Status Affected Z Description: W register is cleared. Zero bit (Z) is set.

DESCRIÇÃO DA INSTRUÇÃO INCF INCF Increment f ------------------------------------------------------------------------- Syntax: [ label ] INCF f,d Operands: 0  f  127 d .  [0,1 Operation: (f) + 1  (destination) Status Affected Z Description: The contents of register ’f’ are incremented. If ’d’ is 0, the result is placed in the W register. If ’d’ is 1, the result is placed back in register ’f’.

DESCRIÇÃO DA INSTRUÇÃO INCFSZ INCFSZ Increment f, Skip if 0 ------------------------------------------------------------------------- Syntax: [ label ] INCFSZ f,d Operands: 0  f  127 d  [0,1] Operation: (f) + 1  (destination), skip if result = 0 Status Affected: None Description: The contents of register ’f’ are incremented. If ’d’ is 0, the result is placed in the W register. If ’d’ is 1, the result is placed back in register ’f’. If the result is 1, the next instruction is executed. If the result is 0, a NOP is executed instead, making

DESCRIÇÃO DA INSTRUÇÃO DECF DECF Decrement f ------------------------------------------------------------- Syntax: [label] DECF f,d Operands: 0  f  127 d  [0,1] Operation: (f) - 1  (destination) Status Affected: Z Description: Decrement register ’f’. If ’d’ is 0, the result is stored in the W register. If ’d’ is 1, the result is stored back in register ’f’.

DESCRIÇÃO DA INSTRUÇÃO DECFSZ DECFSZ Decrement f, Skip if 0 -------------------------------------------------------------------------- Syntax: [ label ] DECFSZ f,d Operands: 0  f  127 d  [0,1] Operation: (f) - 1 (destination); skip if result = 0 Status Affected: None Description: The contents of register ’f’ are decremented. If ’d’ is 0, the result is placed in the W register. If ’d’ is 1, the result is placed back in register ’f’.If the result is 1, the next instruction is executed. If the result is 0, then a NOP is executed instead making it a 2TCYinstruction.

DESCRIÇÃO DA INSTRUÇÃO COMF COMF Complement f ---------------------------------------------------------------------- Syntax: [ label ] COMF f,d Operands: 0  f  127 d .  [0,1] Operation: (f) (destination) Status Affected: Z Description: The contents of register ’f’ are complemented. If ’d’ is 0, the result is stored in W. If ’d’ is 1, the result is stored back in register ’f’.

DESCRIÇÃO DA INSTRUÇÃO RRF RRF Rotate Right f through Carry -------------------------------------------------------------------------- Syntax: [ label ] RRF f,d Operands: 0  f  127 d  [0,1] Operation: See description below Status Affected: C Description: The contents of register ’f’ are rotated one bit to the right through the Carry Flag. If ’d’ is 0, the result is placed in the W register. If ’d’ is1, the result is placed back in register ’f’.

DESCRIÇÃO DA INSTRUÇÃO RLF RLF Rotate Left f through Carry ------------------------------------------------------------------------------- Syntax: [ label ] RLF f,d Operands: 0  f  127 d  [0,1] Operation: See description below Status Affected: C Description: The contents of register ’f’ are rotated one bit to the left through the Carry Flag. If ’d’ is 0, the result is placed in the W register. If ’d’ is 1, the result is stored back in register ’f’.

DESCRIÇÃO DA INSTRUÇÃO SWAPF SWAPF Swap Nibbles in f -------------------------------------------------------------- Syntax: [ label ] SWAPF f,d Operands: 0  f  127 d  [0,1] Operation: (f<3:0>) (destination<7:4>), (f<7:4>) (destination<3:0>) Status Affected: None Description: The upper and lower nibbles of register ’f’ are exchanged. If ’d’ is 0, the result is placed in the W register. If ’d’ is 1, the result is placed in register ’f’.

DESCRIÇÃO DA INSTRUÇÃO NOP NO No Operation --------------------------------------------------- Syntax: [ label ] NOP Operands: None Operation: No operation Status Affected: None Description: No operation.

DESCRIÇÃO DA INSTRUÇÃO BCF BCF Bit Clear f ---------------------------------------------- Syntax: [label] BCF f,b Operands: 0  f  127 0  b  7 Operation: 0 (f<b>) Status Affected: None Description Bit 'b' in register 'f' is cleared.

DESCRIÇÃO DA INSTRUÇÃO BSF BSF Bit Set f --------------------------------------------------- Syntax: [label] BSF f,b Operands: 0  f  127 0  b  7 Operation: 1  (f<b>) Status Affected: None Description: Bit 'b' in register 'f' is set.

DESCRIÇÃO DA INSTRUÇÃO BTFSC BTFSC Bit Test, Skip if Clear ------------------------------------------------------------- Syntax: [label] BTFSC f,b Operands: 0  f  127 0  b  7 Operation: skip if (f<b>) = 0 Status Affected: None Description: If bit 'b' in register 'f' is '1', the next instruction is executed.If bit 'b', in register 'f', is '0', the next instruction is discarded, and a NOP is executed instead, making this a 2TCY instruction.

DESCRIÇÃO DA INSTRUÇÃO BTFSS BTFSS Bit Test f, Skip if Set ----------------------------------------------------- Syntax: [label] BTFSS f,b Operands: 0  f  127 0  b  7 Operation: skip if (f<b>) = 1 Status Affected: None Description: If bit 'b' in register 'f' is '0', the next instruction is executed.If bit 'b' is '1', then the next instructionis discarded and a NOP is executed instead, making this a 2TCY instruction.

DESCRIÇÃO DA INSTRUÇÃO ADDLW ADDLW Add Literal and W ------------------------------------------------------- Syntax [label] ADDLW k Operands: 0  k  255 Operation: (W) + k (W) Status Affected: C, DC, Z Description: The contents of the W register are added to the eight bit literal ’k’ and the result is placed in the W register.

DESCRIÇÃO DA INSTRUÇÃO SUBLW SUBLW Subtract W from Literal ----------------------------------------------------------------- Syntax: [ label ] SUBLW k Operands: 0  k  255 Operation: k - (W) (W) Status Affected: C, DC, Z Description: The W register is subtracted (2’s complement method) from the eight-bit literal 'k'. The result is placed in the W register.

DESCRIÇÃO DA INSTRUÇÃO ANDLW ANDLW AND Literal with W -------------------------------------------------------- Syntax: [label] ANDLW k Operands: 0  k  255 Operation: (W) .AND. (k)  (W) Status Affected: Z Description: The contents of W register are AND’ed with the eight bit literal 'k'. The result is placed in the W register.

DESCRIÇÃO DA INSTRUÇÃO IORLW IORLW Inclusive OR Literal with W --------------------------------------------------------------------- Syntax: [ label ] IORLW k Operands: 0  k  255 Operation: (W) .OR. k  (W) Status Affected: Z Description: The contents of the W register are OR’ed with the eight bit literal 'k'. The result is placed in the W register.

DESCRIÇÃO DA INSTRUÇÃO XORLW XORLW Exclusive OR Literal with W ---------------------------------------------------------------------- Syntax: [label] XORLW k Operands: 0  k  255 Operation: (W) .XOR. k (W) Status Affected: Z Description: The contents of the W register are XOR’ed with the eight-bit literal 'k'. The result is placed in the W register.

DESCRIÇÃO DA INSTRUÇÃO MOVLW MOVLW Move Literal to W --------------------------------------------------------------------- Syntax: [ label ] MOVLW k Operands: 0  k  255 Operation: k (W) Status Affected: None Description: The eight bit literal ’k’ is loaded into W register. The don’t cares will assemble as 0’s.

DESCRIÇÃO DA INSTRUÇÃO GOTO GOTO Unconditional Branch ------------------------------------------------------------------------------- Syntax: [ label ] GOTO k Operands: 0  k  2047 Operation: k  PC<10:0> PCLATH<4:3>  PC<12:11> Status Affected: None Description: GOTO is an unconditional branch. The eleven-bit immediate value is loaded into PC bits <10:0>. The upper bits of PC are loaded from PCLATH<4:3>. GOTO is a twocycle instruction.

DESCRIÇÃO DA INSTRUÇÃO CALL CALL Call Subroutine ---------------------------------------------------------------------------- Syntax: [ label ] CALL k Operands: 0  k  2047 Operation: (PC)+ 1  TOS, k  PC<10:0>, (PCLATH<4:3>)  PC<12:11> Status Affected: None Description: Call Subroutine. First, return address (PC+1) is pushed onto the stack. The eleven-bit immediate address is loaded into PC bits <10:0>. The upper bits of the PC are loaded from PCLATH. CALL is a two-cycle instruction.

DESCRIÇÃO DA INSTRUÇÃO RETURN RETURN Return from Subroutine ------------------------------------------------------- Syntax: [ label ] RETURN Operands: None Operation: TOS PC Status Affected: None Description: Return from subroutine. The stack is POPed and the top of the stack (TOS) is loaded into the program counter. This is a two-cycle instruction.

DESCRIÇÃO DA INSTRUÇÃO RETLW RETLW Return with Literal in W ----------------------------------------------------------------------- Syntax: [ label ] RETLW k Operands: 0  k  255 Operation: k (W); TOS  PC Status Affected: None Description: The W register is loaded with the eight bit literal 'k'. The program counter is loaded from the top of the stack (the return address). This is a two-cycle instruction.

DESCRIÇÃO DA INSTRUÇÃO RETFIE RETFIE Return from Interrupt -------------------------------------------------------------- Syntax: [ label ] RETFIE Operands: None Operation: TOS  PC, 1  GIE Status Affected: None

DESCRIÇÃO DA INSTRUÇÃO CLRWDT CLRWDT Clear Watchdog Timer ------------------------------------------------------------------- Syntax: [ label ] CLRWDT Operands: None Operation: 00h  WDT 0  WDT prescaler, 1  TO 1  PD Status Affected: TO, PD Description: CLRWDT instruction resets the Watchdog Timer. It also resets the prescaler of the WDT. Status bits TO and PD are set.

DESCRIÇÃO DA INSTRUÇÃO SLEEP ---------------------------------------------------------------- Syntax: [ label ] SLEEP Operands: None Operation: 00h  WDT, 0  WDT prescaler, 1  TO, 0  PD Status Affected: TO, PD Description: The power-down status bit, PD is cleared. Time-out status bit, TO is set. Watchdog Timer and its prescaler are cleared.The processor is put into SLEEPmode with the oscillator stopped.

3. EXEMPLOS

EXEMPLO 01 LEITURA DE DADOS DA EEPROM EEPROM(EEADR)  EEDATA

REGISTRADOR DE STATUS

REGISTRADOR EECON1

EXEMPLO DE PROGRAMA

EXEMPLO 2 ESCRITA NA MEMÓRIA FLASH DE PROGRAMA

REGISTRADORES ASSOCIADOS À MEMÓRIA FLASH DE PROGRAMA

EXEMPLO 2

EXEMPLO 3 São dados dois Microcontroladores , A e B Desenvolver um programa para o microcontrolador A que receberá de B um bloco de no máximo 61 bytes. O programa deverá ser armazenado na Memória de Programa a partir da posição X. O primeiro dado recebido informa o número de bytes que virão a seguir(desconsiderar este ), e que será armazenado na posição 20h Os dados seguintes deverão ser guardados alternadamente na memória de dados a partir das posições 31h e 61h.

ADOTAR . O microcontrolador A receberá um byte de cada vez através dos pinos <RB7-RB0>. . A utilizará RA0 como informação de entrada para controle e RA1 para saída. SEQUÊNCIA 1. A comunica B( que está receptivo ) que inicializou o programa colocando RA1 0,1,0 ,permanecendo neste último. 2. A consulta a disponibilidade de um byte em <RB7-RB0> através de RA0 . 3. Quando RA0 for 1 (inicialmente 0 ) o dado estará disponível . 4. A lê a informação ,armazena e envia através de RA1(=1) informação que já registrou o dado ,ficando operando 02 NOP e RA1 volta para zero( B está recptivo ) 5. B recebe a informação e zera RA0 e disponibiliza novo byte de dado ,setando RA0 , 6. Aoperação se repete aié o término dos dados .

PROGRAMA X BSF STATUS,RP0 BCF STATUS,RP1 ,banco 1 MOVLW 01h ,direciona MOVWF TRISA ,portaA MOVLW FF ,direciona MOVWF TRISB ,portaB BCF STATUS,RP0 ,banco 0 BCF PORTA,1 NOP BSF PORTA,1 NOP NOP Y BTFSS PORTA,0 GOTO Y

PROGRAMA (continuação) MOVF PORTB,W ,d=0 MOVWF NUMDAD(20h) MOVLW 31h MOVWF ENDA(21h) MOVLW 61h MOVWF ENDB(22h) U MOVF ENDA(21),W ,d=0 CALL Z INCF ENDA(21) MOVF ENDB(22h),W ,d=0 CALL Z INCF ENDB(22h) DECF NUMDAD(20) , DECFZ NUMDAD(20) GOTO U END

SUBROTINA Z MOVWF FSR BSF PORTA,1 NOP NOP BCF PORTA,1 Z+5 BTFSS PORTA,0 GOTO Z+5 MOVF PORTB,W MOVWF INDEF ,M(FSR)  W RETURN