Sistemas Microprogramados Microcontroladores Conjunto de Instruções Prof. André Luis Roland Tancredo Engenheiro da Computação e Pesquisador em Desenvolvimento Tecnológico para Semicondutores pelo CNPq Especialista em Microeletrônica Professor do grupo Anhanguera Educacional nos cursos de Engenharia da Computação e Tecnologia e Análise em Desenvolvimento de Sistemas nas disciplinas Introdução à Organização de Computadores, Circuitos Digitais e Sistemas Microprogramados FA5 – Unidade Limeira/SP Março 2010 Sistemas Microprogramados Conjunto de Instruções Conjunto de Instruções Termos Utilizados Para facilitar o aprendizado do set de instruções do PIC, é conveniente entender corretamente os termos utilizados na construção dos nomes das instruções e seus argumentos. Work – trata-se de um registrador temporário para as operações da ULA. No Assembler do PIC, ele é conhecido como W. Também é comum chamá-lo de acumulador. File – referência a um registrador (posição de memória) propriamente dito. Utilizaremos a letra F para sua representação nos nomes de instruções e f nos argumentos delas. Literal – um número qualquer que pode ser escrito na forma decimal, hexadecimal ou binária. Utilizaremos a letra L para sua representação nos nomes de instruções e k nos argumentos delas. Fonte: SOUZA, David Jose de. Desbravando o PIC. São Paulo: Erica. Prof. André Luis Roland Tancredo Março 2010 Sistemas Microprogramados Conjunto de Instruções Conjunto de Instruções Termos Utilizados Destino – o local onde deve ser armazenado o resultado da operação. Existem somente dois destinos possíveis: F, que guardará o resultado no próprio registrador passado como argumento, ou W, que colocará o resultado em Work. Na verdade, na sintaxe das instruções, o destino deve ser expresso pelos números 0 (W) e 1(F). No entanto, como veremos mais adiante, as letras F e W são definidas no “include” para facilitar a programação. Bit – refere-se a um bit específico dentro de um byte. Utilizaremos a letra B para sua representação nos nomes das instruções e b nos argumentos delas. Teste – quando queremos testar o estado de um bit, para descobrirmos se ele é zero ou um. Utilizaremos a letra T para representá-lo nos nomes das instruções. Skip – significa “pulo”, e é utilizado para criar, desvios, pulando a próxima linha. Utilizaremos a letra S para representá-lo nos nomes das instruções. Fonte: SOUZA, David Jose de. Desbravando o PIC. São Paulo: Erica. Prof. André Luis Roland Tancredo Março 2010 Sistemas Microprogramados Conjunto de Instruções Conjunto de Instruções Termos Utilizados Set – refere-se ao ato de setar um bit, isto é, torná-lo equivalente a UM. Utilizaremos a letra S para representá-lo nos nomes das instruções. Clear – refere-se ao “clear” de um bit, isto é, torná-lo equivalente a ZERO. Utilizaremos a letra C para representá-lo nos nomes das instruções. Zero – algumas instruções podem gerar desvios se o resultado da operação efetuada for zero. Neste caso, utilizaremos a letra Z para indicar tal condição. Todos os demais termos utilizados são específicos das ações realizadas pelas instruções e são praticamente auto-explicativos. Fonte: SOUZA, David Jose de. Desbravando o PIC. São Paulo: Erica. Prof. André Luis Roland Tancredo Março 2010 Sistemas Microprogramados Conjunto de Instruções Conjunto de Instruções Instruções Básica ADD: soma AND: lógica “E” CLR: limpar, zerar (clear) COM: complemento DEC: decremento de uma unidade INC: incremento de uma unidade IOR: lógica “OR” MOV: mover, transferir para algum lugar RL: rotacionar 1 bit para a esquerda RR: rotacionar 1 bit para a direita SUB: subtração SWAP: inversão entre as partes alta e baixa de um registrador XOR: lógica “OU exclusivo” Fonte: SOUZA, David Jose de. Desbravando o PIC. São Paulo: Erica. Prof. André Luis Roland Tancredo Março 2010 Sistemas Microprogramados Conjunto de Instruções Conjunto de Instruções A construção dos nomes das instruções Com base nos termos anteriores torna-se fácil entender o significado de uma instrução por meio do seu nome, pois ele é composto pela junção destes termos. Exemplo: desejamos decrementar o valor de um determinado registrador. A instrução que fará isto é composta pelos termos referentes à ação que você quer fazer: Decrementar (DEC) um registrador (F) = DECF De forma análoga: DECFSZ = Decrementa (DEC) o registrador (F) e pula (S) se o resultado for zero (Z) Fonte: SOUZA, David Jose de. Desbravando o PIC. São Paulo: Erica. Prof. André Luis Roland Tancredo Março 2010 Sistemas Microprogramados Conjunto de Instruções Conjunto de Instruções Grupos de Instruções Organizamos todas as 35 instruções do 16F84 em quatro grupos, conforme suas aplicações: - Operações com registradores - Operações com literais - Operações com bits - Controles Fonte: SOUZA, David Jose de. Desbravando o PIC. São Paulo: Erica. Prof. André Luis Roland Tancredo Março 2010 Sistemas Microprogramados Conjunto de Instruções Conjunto de Instruções Resumo das Instruções Fonte: SOUZA, David Jose de. Desbravando o PIC. São Paulo: Erica. Prof. André Luis Roland Tancredo Março 2010 Sistemas Microprogramados Conjunto de Instruções Conjunto de Instruções Resumo das Instruções Fonte: SOUZA, David Jose de. Desbravando o PIC. São Paulo: Erica. Prof. André Luis Roland Tancredo Março 2010 Sistemas Microprogramados Conjunto de Instruções Conjunto de Instruções Resumo das Instruções Fonte: SOUZA, David Jose de. Desbravando o PIC. São Paulo: Erica. Prof. André Luis Roland Tancredo Março 2010 Sistemas Microprogramados Conjunto de Instruções Conjunto de Instruções Atividade Dado o trecho de programa abaixo, identificar seus objetivos quando executado pelo PIC 16F84. INIT bsf STATUS,RP0 movlw b'00000000' movwf TRISB bcf STATUS,RP0 movfw STATUS movwf PORTB bsf STATUS,RP0 movfw OPTION_REG bcf STATUS,RP0 movwf PORTB goto INIT end Prof. André Luis Roland Tancredo Março 2010 Sistemas Microprogramados Conjunto de Instruções Conjunto de Instruções Atividade Pesquisa pela estrutura de um programa em Assembler do PIC 16F84. Prof. André Luis Roland Tancredo Março 2010