Você está na página 1de 4

1. Memrias do tipo RAM estticas: 1.

Banco de registradores: 9 bits de endereo e 8 bits de dados: 128 palavras de dados + 4 registradores do processador + 36 registradores de entrada e sada + 4 registradores de entrada e sada que so disponveis apenas no PIC176F871; 2. Pilha de chamada de subprogramas: 3 bits de endereo que so sempre invisveis e 8 palavras de 13 bits. 2. Memrias Flash: 1. Memria de programa: 11 bits de endereo e 14 bits de dados, 2K palavras disponveis; 2. Memria de dados: 6 bits de endereo e 8 bits de dados, 64 palavras. 3. Endereamento do banco de registradores: Os endereos de nove bits empregados para selecionar um dos registradores podem ser fornecidos de forma direta ou indireta. Na forma direta, os sete bits menos significativos do endereo so fornecidos diretamente na instruo e os dois bits mais significativos vem dos bits denominados RP0 e RP1 do registrador de indicadores. Dessa forma, o espao de endereamento fica dividido em quatro partes. Cada uma dessas quatro partes ( denominadas bancos de registradores ) corresponde a 128 endereos e selecionada por uma das combinaes dos valores de RP0 e RP1. Ou seja, os valores dos bits RP0 e RP1 definem qual dos bancos pode ser endereado de forma direta. Na forma indireta, que empregada sempre que for realizado um acesso ao pseudo registrador cujo endereo 00, 80, 100 ou 180, os oito bis menos significativos so fornecidos pelo registrador denominado FSR e o bit mais significativo do endereo vem do bit denominado IRP do registrador de indicadores. Dessa forma, quando essa forma de endereamento empregada, o espao de endereamento fica dividido em duas metades, cada uma com 256 endereos e o valor do bit IRP define qual dessas metades est correntemente sendo usada. Como apenas seis registradores de entrada e sada s podem ser endereados empregando endereos maiores que FF e esses registradores normalmente no so endereados empregando endereamento indireto, geralmente o bit IRP fica sempre com valor 0. 4. Endereamento da pilha A pilha s empregada durante a execuo de chamadas de rotina ( quando o valor do apontador de programa empilhado ) e retornos de rotina ( quando o valor armazenado no topo da pilha copiado para o apontador de programa ). Ela endereada por um apontador de pilha ( de trs bits ) que no visvel. 5. Endereamento da memria de programa A memria de programa geralmente endereada pelo apontador de programa, que um registrador de 13 bits. Porm tambm possvel realizar escritas e leituras nessa memria. Nesse caso, essa memria tratada como se fosse um dispositivo de entrada e sada e os endereos e tambm os dados a serem escritos ou que foram lidos dessa memria so colocados em pares de registradores de interface especficos. Durante realizao dessas operaes de leitura ou escrita nessa memria o processador fica parado ( executando "nops" ) porque no pode ler o cdigo da prxima instruo a ser executada.

6. Endereamento da memria de dados. A memria de dados tratada como se fosse um dispositivo de entrada e sada e os seus endereos e tambm os dados a serem escritos ou que foram lidos dessa memria so colocados em registradores de interface especficos. 7. Registradores do processador Nome W IND PCL Endereo 00 | 80 | 100 | 180 02 | 82 | 102 | 182 Funo Registrador de trabalho ( acumulador ) Pseudo registrador usado para referenciar o registrador cujo endereo igual ao valor armazenado no registrador FSR 8 bits menos significativos do apontador de instruo Registrador de Indicadores Bit Nome Funo 0 C Vai um ou no pede emprestado 1 DC Vai um do quarto para o Quinto bit 2 Z Zero 3 PD\ zerado pela instruo "SLEEP" 4 TO\ zerado quando ocorre um reset causado pelo Watch dog 5 RP0 Bits mais significativos do endereo usado em endereamento 6 RP1 direto Bit mais significativo do endereo usado em endereamento 7 IRP indireto. Informa o endereo do registrador referenciado indiretamente Bits mais significativos do apontador de instruo

STATUS

03 | 83 | 103 | 183

FSR PCLATH

04 | 84 | 104 | 184 0A | 8A | 10A | 18A

8. Ciclo de execuo das instrues: Cada instruo normalmente executada em quatro ciclos de relgio. Durante a execuo de cada instruo realizada simultaneamente a busca do cdigo da prxima instruo a ser executada. Por causa dessa simultaneidade, sempre que o apontador de programa modificado durante a execuo de uma instruo, essa instruo empregar dois ciclos de instruo ( oito ciclos de relgio ) para ser executada. Isso necessrio porque o cdigo de instruo buscado durante a execuo da instruo foi aquele que est armazenado na posio da memria de programa cujo endereo corresponde ao valor que o apontador de programa tinha antes de ser modificado pela instruo. Durante o ciclo de instruo adicional, o processador executa um "nop" e busca o cdigo da instruo armazenada na posio de memria endereada pelo novo valor do apontador de instruo. Essa duplicao do tempo da execuo ocorre tanto no caso de instrues de desvio quanto no caso das instrues que alterem o valor do registrador PCL. No caso das instrues de desvio condicional, a duplicao do tempo de execuo da instruo s ocorre se o desvio for efetivamente realizado. Sempre que o valor do registrador IPL for alterado por uma instruo o apontador de programa receber um valor formado pela concatenao dos cinco bits menos significativos do valor armazenado no registrador PCLATH com os oito bits que foram enviados para o registrador PCL.

9. O conjunto de instrues As palavras de instruo so formadas por 14 bits que contm o cdigo da instruo e valores literais que desempenham o papel de operandos imediatos. So empregados cinco formatos de instruo: Nmero do bit Nome do formato 13 12 11 10 9 8 7 6 5 4 3 2 1 Controle 0 Cdigo de operao Byte 0 Cdigo de operao Dest Endereo oriented Bit Cdigo de 0 1 Nmero do bit Endereo oriented operao Cod. Desvios 1 0 Alvo do desvio Op. Com literal 1 1 Cdigo de operao Constante

So empregados os seguintes valores literais: Nome do valor Tamanho Funo literal ( bits ) Se for zero, indica que o valor produzido deve ser armazenado no Dest. 1 registrador W, se for um, indica que esse valor deve ser armazenado em um registrador do banco de registradores Fornece os sete bits mais significativos do valor empregado para Endereo 7 selecionar qual dos registradores deve ser empregado Nmero do bit 3 Indica qual o bit que deve ser alterado ou testado Fornece os onze bits menos significativos do valor a ser colocado no Alvo do desvio 11 apontador de instruo para realizar um desvio Fornece uma constante que ser diretamente empregada como Constante 8 operando pela instruo

10. Instrues em ordem de cdigo de operao Cdigo


00.0000.0XX0.0000 00.0000.0000.1000 00.0000.0000.1001 00.0000.0110.0011 00.0000.0110.0100 00.0000.1FFF.FFFF 00.0001.0XXX.XXXX 00.0001.1FFF.FFFF 00.0010.DFFF.FFFF 00.0011.DFFF.FFFF 00.0100.DFFF.FFFF 00.0101.DFFF.FFFF 00.0110.DFFF.FFFF 00.0111.DFFF.FFFF 00.1000.DFFF.FFFF 00.1001.DFFF.FFFF 00.1010.DFFF.FFFF 00.1011.DFFF.FFFF 00.1100.DFFF.FFFF 00.1101.DFFF.FFFF 00.1110.DFFF.FFFF 00.1111.DFFF.FFFF 01.00BB.BFFF.FFFF 01.01BB.BFFF.FFFF 01.10BB.BFFF.FFFF 01.11BB.BFFF.FFFF 10.0KKK.KKKK.KKKK 10.1KKK.KKKK.KKKK

Mnemnico e operandos NOP RETURN RETFIE SLEEP CLRWDT MOVWF F CLRW CLRF F SUBWF F,D DECF F,D IORWF F,D ANDWF F,D XORWF F,D ADDWF F,D MOVF F,D COMF F,D INCF F,D DECFSZ F,D RRF F,D RLF F,D SWAPF F,D INCFSZ F,D BCF F,B BSF F,B BTFSC F,B BTFSS F,B

Ciclos 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1|2 1 1 1 1|2 1 1 1|2 1|2 2 2 1 1 1 1 1 1 1

Descrio Nenhuma operao Retorno de subrotina Retorno de interrupo Entra no modo "stand by" Zera o tempo do "watch dog" Move o W para um registrador Zera o W Zera um registrador Soma o complemento a dois de W a um registrador Decrementa um registrador Ou de W com um registrador E de W com um registrador Ou exclusivo de W com um registrador Soma W a um registrador Move um registrador Complementa um registrador Incrementa um registrador Decrementa um registrador e se o resultado for zero, pula a prxima instruo Rola um registrador para a direita Rola um registrador para a esquerda Troca os Quartetos de um registrador Incrementa um registrador e se o resultado for zero, pula a prxima instruo Zera um bit de um registrador Coloca um em um bit de um registrador Se o bit especificado for zero, pula a prxima instruo Se o bit especificado for um, pula a prxima instruo Chama um subprograma Desvia para o alvo especificado Move uma constante para o W Move uma constante para W e retorna do subprograma Ou de uma constante com W E de uma constante com W Ou exclusivo de uma constante com W Soma uma constante ao complemento a dois de W Soma uma constante a W

Indicadores alterados

TO\, PD\ TO\, PD\ Z Z C, DC, Z Z Z Z Z C, DC, Z Z Z Z

C C

CALL K GOTO K 11.00XX.KKKK.KKKK MOVLW K


11.01XX.KKKK.KKKK 11.1000.KKKK.KKKK 11.1001.KKKK.KKKK 11.1010.KKKK.KKKK 11.110X.KKKK.KKKK 11.111X.KKKK.KKKK

RETLW K IORLW K ANDLW K XORLW K SUBLW K ADDLW K

Z Z Z C, DC, Z C, DC, Z