parte 1 4. conjunto de instruÇÕes ide 5. bits de ... - pb... · • os montadores e compiladores...

32
25/04/2017 1 1 25/04/2017 Parte 1 IDE 2 25/04/2017 1. DEFINIÇÃO 2. ASSEMBLY 3. INSTRUÇÕES PIC16F877 4. CONJUNTO DE INSTRUÇÕES 5. BITS DE CONFIGURAÇÃO 6. LITERATURA 1 3 25/04/2017 DEFINIÇÃO DEFINIÇÃO 1 4 25/04/2017 Editor de texto para entrada do código. Debugging do código. Simulador de dispositivo. Assembler (montador). Compilador. Outros itens (opcionais). Componentes DEFINIÇÃO 1 5 25/04/2017 Editor de texto Os montadores e compiladores atuais possuem seus próprios editores de texto. Os primeiros montadores e compiladores não possuíam editor de texto. Era necessário chamar o utilitário IDE na linha de comando (DOS, por exemplo), usando, como argumento, o arquivo texto contendo o programa a ser gravado no dispositivo. Editores de texto embutidos em IDE usam cores pra auxiliar a criação ou edição do programa. DEFINIÇÃO 1 6 25/04/2017 Assembler As primeiras versões de IDE para gravação de P’s e MCU’s permitiam, apenas, o uso dos códigos binários (opcodes). Versões de IDE para gravação de P’s e MCU’s permitiam, apenas, o uso dos códigos Assembler. Versões atuais permitem o uso de pseudocódigos, que facilitam a criação ou edição do programa. O IDE converte o programa contendo os pseudocódigos para o programa em linguagem assembler pura.

Upload: hahuong

Post on 26-Dec-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Parte 1 4. CONJUNTO DE INSTRUÇÕES IDE 5. BITS DE ... - PB... · • Os montadores e compiladores atuais possuem seus próprios editores de texto. • Os primeiros montadores e compiladores

25/04/2017

1

125/04/2017

Parte 1IDE

225/04/2017

1. DEFINIÇÃO2. ASSEMBLY3. INSTRUÇÕES PIC16F8774. CONJUNTO DE INSTRUÇÕES5. BITS DE CONFIGURAÇÃO6. LITERATURA

DEFINIÇÃO1

325/04/2017

DEFINIÇÃO

DEFINIÇÃO1

425/04/2017

• Editor de texto para entrada do código.• Debugging do código.• Simulador de dispositivo.• Assembler (montador).• Compilador.• Outros itens (opcionais).

Componentes

DEFINIÇÃO1

525/04/2017

Editor de texto

• Os montadores e compiladores atuais possuem seuspróprios editores de texto.

• Os primeiros montadores e compiladores não possuíameditor de texto.

• Era necessário chamar o utilitário IDE na linha de comando(DOS, por exemplo), usando, como argumento, o arquivotexto contendo o programa a ser gravado no dispositivo.

• Editores de texto embutidos em IDE usam cores pra auxiliara criação ou edição do programa.

DEFINIÇÃO1

625/04/2017

Assembler

• As primeiras versões de IDE para gravação de P’s eMCU’s permitiam, apenas, o uso dos códigos binários(opcodes).

• Versões de IDE para gravação de P’s e MCU’s permitiam,apenas, o uso dos códigos Assembler.

• Versões atuais permitem o uso de pseudocódigos, quefacilitam a criação ou edição do programa.

• O IDE converte o programa contendo os pseudocódigospara o programa em linguagem assembler pura.

Page 2: Parte 1 4. CONJUNTO DE INSTRUÇÕES IDE 5. BITS DE ... - PB... · • Os montadores e compiladores atuais possuem seus próprios editores de texto. • Os primeiros montadores e compiladores

25/04/2017

2

DEFINIÇÃO1

725/04/2017

Debugger

• As primeiras versões de IDE paragravação de P’s e MCU’s possuíam,apenas, o procedimento de gravação dochip.

• Não era fornecido utilitário para verificaçãode erros básicos na programação.

• Versões atuais fornecem opções para abusca por erros básicos.

DEFINIÇÃO1

825/04/2017

Debugger

• Estrutura: O texto é reconhecido como um programa.• Sintaxe: Os mnemônicos, códigos e números estão corretos.• Escopo de variáveis: Nenhum número é maior do que a

maior capacidade de representação para o tipo de variávelem questão.

• Escopo de endereços do chip: Os tamanhos das memórias,das portas, etc, são respeitados. É preciso identificar omodelo do chip.

• Outros.

DEFINIÇÃO1

925/04/2017

Simulador

• No passado, não havia como prever se o programaestava correto ou não.

• A única forma de verificar era por meio da gravaçãodo chip e da execução no próprio chip.

• A gravação pode ser bastante demorada, tornando otrabalho de criação/edição/correção bastante tedioso.

• Posteriormente, foi acrescentado o recurso dasimulação do chip no computador.

• Somente depois de concluídas todas as verificaçõesno simulador é que se parte para a verificação naexecução pelo chip.

DEFINIÇÃO1

1025/04/2017

Compilador

• A inclusão de compilador no IDE permite o uso delinguagens de alto nível.

• Estas linguagens são mais compreensíveis ao ser humano.• Qualquer linguagem de alto nível pode ser usada em

qualquer chip.• A vantagem do uso de um compilador específico para o

modelo de chip em questão é que o debugger observa oslimites de endereçamento e os periféricos disponíveis.

DEFINIÇÃO1

1125/04/2017

Compilador

• Compiladores para chips específicos podem ser pacotesde grande valor comercial.

• Há casos nos quais são oferecidos o ambiente deprogramação em linguagem de alto nível e, como brinde,recebe-se o kit com o módulo gravador, junto com o chip.

DEFINIÇÃO1

1225/04/2017

Ciclo de desenvolvimento

Page 3: Parte 1 4. CONJUNTO DE INSTRUÇÕES IDE 5. BITS DE ... - PB... · • Os montadores e compiladores atuais possuem seus próprios editores de texto. • Os primeiros montadores e compiladores

25/04/2017

3

DEFINIÇÃO1

1325/04/2017

CompilaçãoCódigo em linguagem C

Código em linguagem de máquina

DEFINIÇÃO1

1425/04/2017

Exemplo de compilador C para PIC®

DEFINIÇÃO1

1525/04/2017

Compiladores C, Basic e PascalDEFINIÇÃO1

1625/04/2017

Compilador de alto nível

DEFINIÇÃO1

1725/04/2017

Linguagem

• A linguagem de compilação não depende do chip.• Qualquer linguagem de compilação pode ser usada para

qualquer MCU, desde que haja compilador compatível.• Um compilador usa uma linguagem específica pra um

chip específico.

ASSEMBLY2

1825/04/2017

ASSEMBLY

Page 4: Parte 1 4. CONJUNTO DE INSTRUÇÕES IDE 5. BITS DE ... - PB... · • Os montadores e compiladores atuais possuem seus próprios editores de texto. • Os primeiros montadores e compiladores

25/04/2017

4

ASSEMBLY2

1925/04/2017

• Linguagem de máquina: O dispositivo entende.• Linguagem humana: O ser humano entende.

Linguagens

• Linguagem de máquina: Zeros e uns.• Linguagem humana: Palavras e números.• Assembly: Mnemônicos e números hexadecimais.

• Linguagem de máquina: Montado.• Linguagem humana: Não montado.

ASSEMBLY2

2025/04/2017

• “To Assemble”:Montar, organizar, reunir.• Assembler: Linguagem de montagem.• Assembly: Código de montagem (não montado).• Disassembly: Assembly obtido a partir do código montado.• Assembly é a linguagem humana de mais baixo nível.• Assembly depende do P, da MCU ou da DSP usada.

Definição

ASSEMBLY2

2125/04/2017

• Mnemônicos são palavras fáceis de entender.• Mnemônicos usam, apenas, letras.• As letras devem ser maiúsculas.• Mnemônicos são palavras curtas.• Os mnemônicos são específicos para o dispositivo.• Dispositivos diferentes podem usar mnemônicos diferentes.• Os mnemônicos são digitados pelo programador.• Cada instrução recebe um mnemônico.• Disassembly: Assembly obtido a partir do código montado.• Preferencialmente, usar fonte courier new.

MnemônicosASSEMBLY2

2225/04/2017

• É a conversão da linguagem de montagem (assembler)para linguagem de máquina.

• É a conversão do código assembly para o código montado.• Código montado é o código binário.• A linguagem de montagem (assembler) usa:

• Mnemônicos de instrução.• Parâmetros numéricos para as instruções.

• A linguagem de máquina usa bits.

Montagem

ASSEMBLY2

2325/04/2017

• A relação entre o código em linguagem de montageme o código em linguagem de máquina é biunívoca.

• A relação entre a instrução e seu opcode ébiunívoca.

• Em alguns dispositivos processadores, a tabela demontagem possui algumas irrelevâncias (don’t care –X) em alguns bits de algumas instruções.

• Essas irrelevâncias fazem com que a relaçãobiunívoca seja quebrada.

• Geralmente, os montadores substituem asirrelevâncias por zero.

MontagemASSEMBLY2

2425/04/2017

• A conversão do código feito em linguagem assembly para ocódigo em linguagem de máquina é chamado de montagem.

• A conversão do código feito em linguagem de compilação parao código em linguagem de máquina é chamado de compilação.

• Compiladores empregam códigos específicos da próprialinguagem.

• A linguagem de compilação não depende do dispositivoempregado, não usa os seus mnemônicos.

• Compiladores não permitem que o usuário lide com opcodes einstruções de máquina.

• Compiladores, geralmente, não fornecem o código assemblysobre o qual a montagem foi realizada.

• Compiladores podem ser de baixo nível e de alto nível.

Linguagem de compilação

Page 5: Parte 1 4. CONJUNTO DE INSTRUÇÕES IDE 5. BITS DE ... - PB... · • Os montadores e compiladores atuais possuem seus próprios editores de texto. • Os primeiros montadores e compiladores

25/04/2017

5

ASSEMBLY2

2525/04/2017

• A compilação é feita pelo compilador (Basic, Pascal, C, C++,Delphy, Java, etc).

• A montagem é feita pelo montador (assembler).• O programa editor de assembly pode ser constituído de um

simples editor de textos.• O programa montador consiste de um programa separado do

editor assembly e alguns montadores não possuem o editor,o arquivo texto é carregado como parâmetro da montagem.

MontagemASSEMBLY2

2625/04/2017

• Cada dispositivo necessita ter seu próprio montador.• Dispositivos diferentes podem ter montadores compatíveis.• Para aumentar a compatibilidade entre programas, os P’s

são agrupados em famílias com montadores compatíveis.• Exemplos:

• IA32 ou i386 ou x86-32 (32 bits).• IA32-EM64T ou x86-64 (64 bits).

Montagem

ASSEMBLY2

2725/04/2017

• Alguns editores assembly permitem a inclusão de códigosque não fazem parte do assembly puro, chamados depseudocódigos (diretivas de montagem, comentários, etc).

• Estes pseudocódigos permitem que se utilize nomes nolugar de endereços.

• Endereços podem se referir a registradores, a bits deregistradores e à program memory.

• Estas diretivas tem a função de guiar a criação do códigoa ser montado, de modo que o usuário não precise lidardiretamente com o código assembly, mas, sim, com umcódigo que apresenta algumas características delinguagem de compilação.

• Evitaremos o uso de certas diretivas para proporcionar oaprendizado da linguagem assembler.

PseudocódigosASSEMBLY2

2825/04/2017

• Sabendo qual o modelo do dispositivo, pode-se converter oseu código de máquina em código de montagem.

• Esta operação é chamada de desmontagem (disassembly).• O código desmontado somente pode ser obtido usando o

assembly puro, sem os recursos adicionais do montador.

Desmontagem

ASSEMBLY2

2925/04/2017

• Uma e, somente, uma instrução por linha.• A instrução começa pelo mnemônico.• O mnemônico é uma palavra, não contém números.• O mnemônico usa somente letras maiúsculas.• Após o mnemônico, vem os argumentos da instrução.• Os argumentos são numéricos.• Os números são hexadecimais.• Pode haver zero, um ou dois argumentos.

Código assembly puroEstrutura

ASSEMBLY2

3025/04/2017

• Qualquer outra informação que não seja o mnemônico dainstrução e seus argumentos numéricos não fazem parte docódigo assembly puro.

• O código assembly puro pode ser obtido no disassembly.• O disassembly fornece, apenas, o código assembly puro.• Informações adicionais não podem ser obtidas no disassembly.• A relação entre o código disassembly e o código montado é

biunívoca.

Código assembly puro

Page 6: Parte 1 4. CONJUNTO DE INSTRUÇÕES IDE 5. BITS DE ... - PB... · • Os montadores e compiladores atuais possuem seus próprios editores de texto. • Os primeiros montadores e compiladores

25/04/2017

6

ASSEMBLY2

3125/04/2017

• O código assembly pode conter outras informaçõesalém do assembly puro que facilitam aelaboração/compreensão do programa.

• Estas extensões facilitam a elaboração do programa.• Essas extensões podem ser diretivas de

programação, variáveis, constantes, etc.• Essas extensões são específicas do fabricante do

programa montador. Cada fabricante pode ter o seuconjunto próprio de extensões.

• Essas extensões são perdidas no códigodisassembly.

• Cores são usadas para facilitar o desenvolvimentode programas no ambiente assembler.

Código assemblyASSEMBLY2

3225/04/2017

Debuging

Assembly com

extensões

Assembly puro

Conversão feita manualmenteou automaticamente peloambiente de desenvolvimento.

Impossível

Digitação

ASSEMBLY2

3325/04/2017

Debuging

• Tanto o código assembly com extensões como ocódigo assembly puro estão em linguagem humana.

• É na conversão do código assembly com extensõespara o código assembly puro que a verificação deerros é realizada.

• Se o código pôde ser escrito como assembly puro, éporque nenhum erro de sintaxe e de escopo foiencontrado.

• Uma vez “debugado”, o código já pode ser montado.

ASSEMBLY2

3425/04/2017

Ambiente assembler

Assembly com

extensões

Assembly puro

Linguagem de máquina

Montagem

Desmontagem

Chip

Programação

Leitura

Usuário

Automático

001101101011101001001010101010001010101010000110

ASSEMBLY2

3525/04/2017

Ambiente assembler

Editor de texto ou de hipertexto

DebuggerMontador Gravador do

chip

ASSEMBLY2

3625/04/2017

Ambiente compiler

Linguagem de alto nível

Linguagem de montagem

Linguagem de máquina Chip

Montagem

Desmontagem

Programação

Leitura

Compilação

Usuário

A parte em vermelho geralmente não é disponibilizada.

001101101011101001001010101010001010101010000110

Page 7: Parte 1 4. CONJUNTO DE INSTRUÇÕES IDE 5. BITS DE ... - PB... · • Os montadores e compiladores atuais possuem seus próprios editores de texto. • Os primeiros montadores e compiladores

25/04/2017

7

ASSEMBLY2

3725/04/2017

• Sintaxe:• Mnemônico de instrução inválido.

• Escopo:• Dado inválido.• Endereço inválido.• Parâmetro inválido.

• Erro em parâmetros além do assembly puro.

DebuggerTipos de erro

ASSEMBLY2

3825/04/2017

• O debugger realiza a descoberta de erros porque elesabe qual o modelo de P/MCU/DSP a ser usado.

• É preciso definir o modelo do dispositivo.• É preciso que o montador seja compatível com o modelo.• O montador compatível possui todos os parâmetros

necessários do dispositivo para que seja feita a buscapor erros de sintaxe ou de escopo.

Debugger

ASSEMBLY2

61.JA62.JAE63.JB64.JBE65.JNA66.JNAE67.JNB68.JNBE69.JC70.JNC

3925/04/2017

Mnemônicos P x86-32 (resumido)1. MOV2. XCHG3. STC4. CLC5. CMC6. STD7. CLD8. STI9. CLI10.PUSH11.PUSHF12.PUSHA13.POP14.POPF15.POPA16.CBW17.CWD18.CWDE19.IN20.OUT

21.ADD22.ADC23.SUB24.SBB25.DIV26.IDIV27.MUL28.IMUL29.INC30.DEC31.CMP

38.NEG39.NOT40.AND41.OR42.XOR43.SHL44.SHR

45.NOP46.LEA47.INT

48.CALL49.JMP50.JE51.JZ52.JCXZ53.JP54.JPE55.RET56.JNE57.JNZ58.JECXZ59.JNP60.JPO

Transfer

32.SAL33.SAR34.RCL35.RCR36.ROL37.ROR

Arithmetic Logic Misc

Jumps

JumpsUnsigned

71.JG72.JGE73.JL74.JLE75.JNG76.JNGE77.JNL78.JNLE79.JO80.JNO81.JS82.JNS

JumpsSigned

http://www.jegerlehner.ch/intel/IntelCodeTable.pdf

CISC

ASSEMBLY2

4025/04/2017

Exemplos de P x86-32

1. Intel® Pentium processor2. Intel® Pentium Pro processor3. Intel® Pentium II processor4. Intel® Pentium II Xeon processor5. Intel® Celeron processor6. Intel® Pentium III processor7. Intel® Pentium III Xeon processor8. AdvancedMicroDevices© Athlon processor9. AdvancedMicroDevices© Opteron processor

http://docs.oracle.com/cd/E19253-01/817-5477/817-5477.pdf

CISC

ASSEMBLY2

4125/04/2017

Mnemônicos ARM1. ABS2. ACS3. ADC4. ADD5. ADF6. ADR7. ADRL8. ALIGN9. AND10. ASL11. ASN12. ASR13. ATN14. B15. BIC16. BKPT17. BL18. BLX19. BX20. CDP21. CDP222. CLZ23. CMF24. CMN25. CMP26. CNF27. COS28. DCx29. DVF30. EOR31. EQUx32. EXP33. FABS34. FADD35. FCMP36. FCVTDS37. FCVTSD38. FCPY39. FDIV40. FDV

81. LDRSB82. LDRSH83. LFM84. LGN85. LOG86. LSL87. LSR88. MCR89. MCR290. MCRR91. MLA92. MNF93. MOV94. MRC95. MRC296. MRRC97. MRS98. MSR99. MUF100. MUL101. MVF102. MVN103. NEG104. NOP105. NRM106. OPT107. ORR108. ORR109. PLD110. POL111. POP112. POW113. PUSH114. QADD115. QDADD116. QDSUB117. QSUB118. RDF119. RFC120. RFS

41. FIX42. FLD43. FLDMDB44. FLDMIA45. FLT46. FMAC47. FMDHR48. FMDLR49. FMRDH50. FMRDL51. FML52. FMSC53. FMRS54. FMSR55. FMUL56. FMRX57. FMSTAT58. FMXR59. FNEG60. FNMAC61. FNMSC62. FNMUL63. FRD64. FSITO65. FSQRT66. FST67. FSTMDB68. FSTMIA69. FSUB70. FTOSI71. FTOUI72. FUITO73. LDC74. LDC275. LDF76. LDM77. LDMIA78. LDR79. LDRB80. LDRH

121. RMF122. RND123. ROR124. RPW125. RRX126. RSB127. RSC128. RSF129. SBC130. SFM131. SIN132. SMLA133. SMLAL134. SMLAW135. SMUL136. SMULL137. SMULW138. SQT139. STC140. STC2141. STF142. STM143. STMIA144. STR145. STR146. STRB147. STRH148. STRSB149. STRSH150. SUB151. SUF152. SWI153. SWP154. TAN155. TEQ156. TST157. UMLAL158. UMULL159. URD160. WFC161. WFS

http://ww

w.heyrick.co.uk/assem

bler/qfinder.html

ASSEMBLY2

4225/04/2017

Mnemônicos AVR

1. ADD2. ADC3. SUB4. SUBI5. SBC6. SBCI7. AND8. ANDI9. OR10. ORI11. EOR12. COM13. NEG14. SBR15. CBR16. INC17. DEC18. TST19. CLR20. SER

53. LD54. ST55. MOV56. LDI57. IN58. OUT59. LPM

21. RJMP22. CALL23. RET24. RETI25. CPSE26. CP27. CPC28. CPI29. SBRC30. SBRS31. SBIC32. SBIS33. BRBS34. BRBC35. BREQ36. BRNE37. BRCS38. BRCC39. BRSH40. BRLO41. BRMI42. BRPL43. BRGE44. BRLT45. BRHS46. BRHC47. BRTS48. BRTC49. BRVS50. BRVC51. BRIE52. BRID

60. SBI61. CBI62. LSL63. LSR64. ROL65. ROR66. ASR67. SWAP68. BSET69. BCLR70. BST71. BLD72. SEC73. CLC74. SEM75. CLN76. SEZ77. CLZ78. SEI79. CLI80. SES81. CLS82. SEV83. CLV84. SET85. CLT86. SEH87. CLH88. NOP89. SLEEP90. WDR

http://en.wikipedia.org/w

iki/Atm

el_AV

R_instruction_set

Aritmética

Desvio

Transferência

Sobre bits

Page 8: Parte 1 4. CONJUNTO DE INSTRUÇÕES IDE 5. BITS DE ... - PB... · • Os montadores e compiladores atuais possuem seus próprios editores de texto. • Os primeiros montadores e compiladores

25/04/2017

8

ASSEMBLY2

4325/04/2017

Mnemônicos 8-bit MCU Intel® 8051

http://ww

w.w

in.tue.nl/~aeb/comp/8051/set8051.htm

l

0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b 0x0c 0x0d 0x0e 0x0f

0x00 NOP AJMP LJMP RR INC INC INC INC INC INC INC INC INC INC INC INC

0x10 JBC ACALL LCALL RRC DEC DEC DEC DEC DEC DEC DEC DEC DEC DEC DEC DEC

0x20 JB AJMP RET RL ADD ADD ADD ADD ADD ADD ADD ADD ADD ADD ADD ADD

0x30 JNB ACALL RETI RLC ADDC ADDC ADDC ADDC ADDC ADDC ADDC ADDC ADDC ADDC ADDC ADDC

0x40 JC AJMP ORL ORL ORL ORL ORL ORL ORL ORL ORL ORL ORL ORL ORL ORL

0x50 JNC ACALL ANL ANL ANL ANL ANL ANL ANL ANL ANL ANL ANL ANL ANL ANL

0x60 JZ AJMP XRL XRL XRL XRL XRL XRL XRL XRL XRL XRL XRL XRL XRL XRL

0x70 JNZ ACALL ORL JMP MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV

0x80 SJMP AJMP ANL MOVC DIV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV

0x90 MOV ACALL MOV MOVC SUBB SUBB SUBB SUBB SUBB SUBB SUBB SUBB SUBB SUBB SUBB SUBB

0xa0 ORL AJMP MOV INC MUL ? MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV

0xb0 ANL ACALL CPL CPL CJNE CJNE CJNE CJNE CJNE CJNE CJNE CJNE CJNE CJNE CJNE CJNE

0xc0 PUSH AJMP CLR CLR SWAP XCH XCH XCH XCH XCH XCH XCH XCH XCH XCH XCH

0xd0 POP ACALL SETB SETB DA DJNZ XCHD XCHD DJNZ DJNZ DJNZ DJNZ DJNZ DJNZ DJNZ DJNZ

0xe0 MOVX AJMP MOVX MOVX CLR MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV

0xf0 MOVX ACALL MOVX MOVX CPL MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV

ASSEMBLY2

4425/04/2017

Instructions OpCodeINC A 0x04

INC iram addr 0x05

INC @R0 0x06

INC @R1 0x07

INC R0 0x08

INC R1 0x09

INC R2 0x0A

INC R3 0x0B

INC R4 0x0C

INC R5 0x0D

INC R6 0x0E

INC R7 0x0F

INC DPTR 0xA3

Instructions OpCodeADD A,#data 0x24

ADD A,iram addr 0x25

ADD A,@R0 0x26

ADD A,@R1 0x27

ADD A,R0 0x28

ADD A,R1 0x29

ADD A,R2 0x2A

ADD A,R3 0x2B

ADD A,R4 0x2C

ADD A,R5 0x2D

ADD A,R6 0x2E

ADD A,R7 0x2F

Instructions OpCodeACALL page0 0x11

ACALL page1 0x31

ACALL page2 0x51

ACALL page3 0x71

ACALL page4 0x91

ACALL page5 0xB1

ACALL page6 0xD1

ACALL page7 0xF1

http://www.win.tue.nl/~aeb/comp/8051/set8051.html

Mnemônicos 8-bit MCU Intel® 8051

• Em arquitetura CISC, um mesmo mnemônicopode ser empregado em várias instruções.

• Em cada uma delas, a sintaxe é diferente.

ASSEMBLY2

4525/04/2017

ACI DCX LXI RPEADC DCX LXI RPOADC DCX MOV RZADD DCX MOV RLCADD DI MOV RRCADI EI MVI RSTANA HLT MVI SBBANA IN NOP SBBANI INR ORA SBICALL INR ORA SHLDCC INX ORI SIMCM INX OUT SPHLCMA INX PCHL STACMC INX POP STAXCMP JMP POP STAXCMP JC POP STCCNC JM POP SUBCNZ JNC PUSH SUBCP JNZ PUSH SUICPE JP PUSH XCHGCPI JPE PUSH XRACPO JPO RAL XRACZ JZ RAR XRIDAA LDA RET XTHLDAD LDAX RCDAD LDAX RIMDAD LHLD RMDAD LXI RNCDCR LXI RNZDCR LXI RP

CISC

http://cdn.cpu-world.com/CPUs/8085/S_Intel-D8085AH-1.jpg

Mnemônicos 8-bit P Intel® 8085ASSEMBLY2

4625/04/2017

Mnemônicos 8-bit P Intel® 8080 e Zilog® Z80adc a,(hl) cp n inc (ii+s) ld (hl),n or n rlc (hl) srl (hl)adc a,(ii+s) cp r inc r ld (hl),r or r rlc (ii+s) srl (ii+s)adc a,n cpd inc ss ld (ii+s),n otdr rlc r srl radc a,r cpdr inc ii ld (ii+s),r otir rlca sub (hl)adc hl,ss cpi ind ld a,(nn) out (n),a rld sub (ii+s)add a,(hl) cpir indr ld a,(bc) out (c),r rr (hl) sub nadd a,(ii+s) cpl ini ld a,(de) outd rr (ii+s) sub radd a,n daa inir ld a,i outi rr r xor (hl)add a,r dec (hl) jp (hl) ld a,r pop rr rra xor (ii+s)add hl,ss dec (ii+s) jp (ii) ld r,(hl) pop ii rrc (hl) xor nadd ii,pp dec r jp nn ld r,(ii+s) push rr rrc (ii+s) xor rand (hl) dec ss jp c,nn ld r,n push ii rrc rand (ii+s) dec ii jp m,nn ld r1,r2 res b,(hl) rrcaand n di jp nc,nn ld i,a res b,(ii+s) rrdand r djnz s jp nz,nn ld r,a res b,r rst kbit b,(hl) ei jp p,nn ld ss,(nn) ret sbc a,(hl)bit b,(ii+s) ex (sp),hl jp pe,nn ld hl,(nn) ret c sbc a,(ii+s)bit b,r ex (sp),ii jp po,nn ld ii,(nn) ret m sbc a,ncall nn ex af,af' jp z,nn ld ss,nn ret nc sbc a,rcall c,nn ex de,hl jr s ld ii,nn ret nz sbc hl,sscall m,nn exx jr c,s ld sp,hl ret p scfcall nc,nn halt jr nc,s ld sp,ii ret pe set b,(hl)call nz,nn (HALT) jr nz,s ldd ret po set b,(ii+s)call p,nn im 0 jr z,s lddr ret z set b,rcall pe,nn im 1 ld (nn),a ldi reti sla (hl)call po,nn im 2 ld (nn),ss ldir retn sla (ii+s)call z,nn in a,(n) ld (nn),hl neg rl (hl) sla rccf in r,(c) ld (nn),ii nop rl (ii+s) sra (hl)cp (hl) *1 ld (bc),a or (hl) rl r sra (ii+s)cp (ii+s) inc (hl) ld (de),a or (ii+s) rla sra r

http://www.angelfire.com/art2/unicorndreams/msx/Z80R800A.html

ASSEMBLY2

27.CALL28.GOTO29.RETLW

23.MOVLW24.IORLW25.ANDLW26.XORLW

4725/04/2017

Mnemônicos PIC® 8-bit baseline19.BCF20.BSF21.BTFSC22.BTFSS

bbbfbbbfbbbfbbbf

ffffffffffffffff

01 0001 0101 1001 11

11 0011 0111 1011 11

kkkkkkkkkkkkkkkk

kkkkkkkkkkkkkkkk

10 0110 1k10 00

kkkkkkkkkkkk

kkkkkkkkkkkk

00 0000 0000 0000 00

0000000000000000

0100001000110fff

30.CLRWDT31.OPTION32.SLEEP33.TRIS

1. ADDWF2. ANDWF3. COMF4. DECF5. DECFSZ6. INCF7. INCFSZ8. IORWF9. MOVF10.RLF11.RRF12.SUBWF13.SWAPF14.XORWF15.MOVWF16.CLRF17.NOP18.CLRW

000000000000000000000000000000000000

011101011001001110111010111101001000110111000010111001100000000100000001

dfdfdfdfdfdfdfdfdfdfdfdfdfdf1f1f0000

ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000

ASSEMBLY2

4825/04/2017

Mnemônicos PIC® 8-bit mid-range19.BCF20.BSF21.BTFSC22.BTFSS

00bb01bb10bb11bb

bfffbfffbfffbfff

ffffffffffffffff

01010101

0000000000000000

0110000000000110

0100100110000011

32.CLRWDT33.RETFIE34.RETURN35.SLEEP

00000000

00xx01xx100010011010110x111x

kkkkkkkkkkkkkkkkkkkkkkkkkkkkk

kkkkkkkkkkkkkkkkkkkkkkkkkkkk

23.MOVLW24.RETLW25.IORLW26.ANDLW27.XORLW28.SUBLW29.ADDLW

11111111111111

0kkk1kkk

kkkkkkkk

kkkkkkkk

30.CALL31.GOTO

1010

1. ADDWF2. ANDWF3. COMF4. DECF5. DECFSZ6. INCF7. INCFSZ8. IORWF9. MOVF10.RLF11.RRF12.SUBWF13.SWAPF14.XORWF15.MOVWF16.CLRF17.NOP18.CLRW

011101011001001110111010111101001000110111000010111001100000000100000001

dfffdfffdfffdfffdfffdfffdfffdfffdfffdfffdfffdfffdfffdfff1fff1fff0xx00xxx

ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000xxxx

000000000000000000000000000000000000

Page 9: Parte 1 4. CONJUNTO DE INSTRUÇÕES IDE 5. BITS DE ... - PB... · • Os montadores e compiladores atuais possuem seus próprios editores de texto. • Os primeiros montadores e compiladores

25/04/2017

9

ASSEMBLY2

4925/04/2017

Mnemônicos PIC® 8-bit e.mid-range19.BCF20.BSF21.BTFSC22.BTFSS

00bb01bb10bb11bb

bfffbfffbfffbfff

ffffffffffffffff

01010101

0000010010001001101011001110

kkkkkkkkkkkkkkkkkkkkkkkkkkkkk

kkkkkkkkkkkkkkkkkkkkkkkkkkkk

23.MOVLW24.RETLW25.IORLW26.ANDLW27.XORLW28.SUBLW29.ADDLW

11111111111111

30.ADDWFC31.ASRF32.LSLF33.LSRF34.SUBWFB

11010111010101101011

dfffdfffdfffdfffdfff

ffffffffffffffffffff

1111111111

1. ADDWF2. ANDWF3. COMF4. DECF5. DECFSZ6. INCF7. INCFSZ8. IORWF9. MOVF10.RLF11.RRF12.SUBWF13.SWAPF14.XORWF15.MOVWF16.CLRF17.NOP18.CLRW

011101011001001110111010111101001000110111000010111001100000000100000001

dfffdfffdfffdfffdfffdfffdfffdfffdfffdfffdfffdfffdfffdfff1fff1fff00000000

ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000xx

000000000000000000000000000000000000

ASSEMBLY2

5025/04/2017

Mnemônicos PIC® 8-bit e.mid-range

37.MOVLB38.MOVLP

00000001

001k1kkk

kkkkkkkk

0011

39.BRA40.BRW41.CALLW42.RETFIE43.RETURN44.CLRWDT45.OPTION46.RESET47.SLEEP48.TRIS49.ADDFSR50.MOVIW

51.MOVWI

001k00000000000000000000000000000000000000010000111100001111

kkkk0000000000000000011001100000011001100nkk00010nkk00011nkk

kkkk101110101001100001000010000100110fffkkkk0nmm1nmmkkkkkkkk

110000000000000000001100110011

kkkkkkkk

kkkkkkkk

35.CALL36.GOTO

1010

0kkk1kkk

ASSEMBLY2

5125/04/2017

Quadro comparativoBaseline Mid Range E. M. R.

LSLFLSRF

MOVF MOVF MOVFMOVIWMOVLBMOVLP

MOVLW MOVLW MOVLWMOVWF MOVWF MOVWF

MOVWINOP NOP NOPOPTION OPTION

RESETRETFIE RETFIE

RETLW RETLW RETLWRETURN RETURN

RLF RLF RLFRRF RRF RRFSLEEP SLEEP SLEEP

SUBLW SUBLWSUBWF SUBWF SUBWF

SUBWFBSWAPF SWAPF SWAPFTRIS TRISXORLW XORLW XORLWXORWF XORWF XORWF

Baseline Mid Range E. M. R.ADDFSR

ADDLW ADDLWADDWF ADDWF ADDWF

ADDWFCANDLW ANDLW ANDLWANDWF ANDWF ANDWF

ASRFBCF BCF BCF

BRABRW

BSF BSF BSFBTFSC BTFSC BTFSCBTFSS BTFSS BTFSSCALL CALL CALL

CALLWCLRF CLRF CLRFCLRW CLRW CLRWCLRWDT CLRWDT CLRWDTCOMF COMF COMFDECF DECF DECFDECFSZ DECFSZ DECFSZGOTO GOTO GOTOINCF INCF INCFINCFSZ INCFSZ INCFSZIORLW IORLW IORLWIORWF IORWF IORWF

ASSEMBLY2

5225/04/2017

• Importar um código assembly feitopara um chip e usá-lo em outro tipode chip nem sempre é tarefa fácil.

• Podem ser necessárias alteraçõesem mnemônicos e em faixas devalores para operandos.

• Diferenças ocorrem até mesmodentro da mesma família.

Importação de código

ASSEMBLY2

5325/04/2017

Mnemônicos PIC® 8-bit PIC181. ADDWF2. ADDWFC3. ANDWF4. CLRF5. COMF6. CPFSEQ7. CPFSGT8. CPFSLT9. DECF10.DECFSZ11.DCFSNZ12.INCF13.INCFSZ14.INFSNZ15.IORWF

16.MOVF17.MOVFF18.MOVWF19.MULWF20.NEGF21.RLCF22.RLNCF23.RRCF24.RRNCF25.SETF26.SUBFWB27.SUBWF28.SUBWFB29.SWAPF30.TSTFSZ31.XORWF

32.BCF33.BSF34.BTFSC35.BTFSS36.BTG

37.BC38.BN39.BNC40.BNN41.BNOV42.BNZ43.BOV44.BRA45.BZ46.CALL47.CLRWDT48.DAW

59.ADDLW60.ANDLW61.IORLW62.LFSR63.MOVLB64.MOVLW65.MULLW66.RETLW67.SUBLW68.XORLW

69.TBLRD*70.TBLRD*+71.TBLRD*-72.TBLRD+*73.TBLWT*74.TBLWT*+75.TBLWT*-76.TBLWT+*

49.GOTO50.NOP51.POP52.PUSH53.RCALL54.RESET55.RETFIE56.RETLW57.RETURN58.SLEEP

ASSEMBLY2

5425/04/2017

Mnemônicos PIC24F (ex.:04KA200)1. ADD2. ADDC3. AND4. ASR5. BCLR6. BRA7. BSET8. BSW9. BTG10.BTSC11.BTSS12.BTST13.BTSTS14.CALL15.CLR16.CLRWDT

17.COM18.CP19.CP020.CPB21.CPSEQ22.CPSGT23.CPSLT24.CPSNE25.DAW26.DEC27.DEC228.DISI29.DIV30.FF1L31.FF1R32.GOTO

33.INC34.INC235.IOR36.LNK37.LSR38.MOV39.MUL40.NEG41.NOP42.POP43.PUSH44.PWRSAV45.RCALL46.REPEAT47.RESET48.RETFIE

49.RETLW50.RETURN51.RLC52.RLNC53.RRC54.RRNC55.SE56.SETM57.SL58.SUB59.SUBB60.SUBR61.SUBBR62.SWAP63.TBLRDH64.TBLRDL

65.TBLWTH66.TBLWTL67.ULNK68.XOR69.ZE

Page 10: Parte 1 4. CONJUNTO DE INSTRUÇÕES IDE 5. BITS DE ... - PB... · • Os montadores e compiladores atuais possuem seus próprios editores de texto. • Os primeiros montadores e compiladores

25/04/2017

10

ASSEMBLY2

5525/04/2017

Mnemônicos PIC24HJ (ex.:12GP201/202)1. ADD2. ADDC3. AND4. ASR5. BCLR6. BRA7. BSET8. BSW9. BTG10.BTSC11.BTSS12.BTST13.BTSTS14.CALL15.CLR16.CLRWDT

17.COM18.CP19.CP020.CPB21.CPSEQ22.CPSGT23.CPSLT24.CPSNE25.DAW26.DEC27.DEC228.DISI29.DIV30.EXCH31.BFCL32.FF1L

33.FF1R34.GOTO35.INC36.INC237.IOR38.LNK39.LSR40.MOV41.MUL42.NEG43.NOP44.POP45.PUSH46.PWRSAV47.RCALL48.REPEAT

49.RESET50.RETFIE51.RETLW52.RETURN53.RLC54.RLNC55.RRC56.RRNC57.SE58.SETM59.SL60.SUB61.SUBB62.SUBR63.SUBBR64.SWAP

65.TBLRDH66.TBLRDL67.TBLWTH68.TBLWTL69.ULNK70.XOR71.ZE

ASSEMBLY2

5625/04/2017

Mnemônicos PIC24EP (ex.:64GP202)1. ADD2. ADDC3. AND4. ASR5. BCLR6. BRA7. BSET8. BSW9. BTG10.BTSC11.BTSS12.BTST13.BTSTS14.CALL15.CLR16.CLRWDT

17.COM18.CP19.CP020.CPB21.CPSEQ22.CPSGT23.CPSLT24.CPSNE25.DAW26.DEC27.DEC228.DISI29.DIV30.DIVF31.DO32.ED

33.EDAC34.EXCH35.BFCL36.FF1L37.FF1R38.GOTO39.INC40.INC241.IOR42.LAC43.LNK44.LSR45.MAC46.MOV47.MOVPAG48.MOVSAC

49.MYP50.MYP.N51.MSC52.MUL53.NEG54.NOP55.POP56.PUSH57.PWRSAV58.RCALL59.REPEAT60.RESET61.RETFIE62.RETLW63.RETURN64.RLC

65.RLNC66.RRC67.RRNC68.SAC69.SE70.SETM71.SFTAC72.SL73.SUB74.SUBB75.SUBR76.SUBBR77.SWAP78.TBLRDH79.TBLRDL80.TBLWTH

81.TBLWTL82.ULNK83.XOR84.ZE

ASSEMBLY2

5725/04/2017

MIPS32® e MIPS64®

• Copyright © Imagination Technologies Limited. Allrights reserved.

• Microprocessor without Interlocked Pipeline Stages.• microMIPS®: Códigos comprimidos.• Arquitetura RISC.• Disponível para MCU´s e DSP´s.• Os conjuntos de instruções, sua arquitetura e

códigos estão disponíveis para implementação emqualquer dispositivo de qualquer fabricante.

ASSEMBLY2

5825/04/2017

Mnemônicos PIC32MX (MIPS32) (ex.:64GP202)

http://ww

w.m

ips.com/m

edia/files/MD00565-2B-M

IPS32-QRC-01.01.pdf

ASSEMBLY2

5925/04/2017

Mnemônicos MIPS64®ADD Add (with overflow)ADDI Add immediate (with overflow)ADDIU Add immediate unsigned (no overflow)ADDU Add unsigned (no overflow)AND Bitwise andANDI Bitwise and immediateBEQ Branch on equalBGEZ Branch on greater than or equal to zeroBGEZAL Branch on greater than or equal to zero and linkBGTZ Branch on greater than zeroBLEZ Branch on less than or equal to zeroBLTZ Branch on less than zeroBLTZAL Branch on less than zero and linkBNE Branch on not equalDIV DivideDIVU Divide unsignedJ JumpJAL Jump and linkJR Jump registerLB Load byteLUI Load upper immediateLW Load wordMFHI Move from HIMFLO Move from LOMULT MultiplyMULTU Multiply unsignedNOOP no operationOR Bitwise orORI Bitwise or immediateSB Store byteSLL Shift left logicalSLLV Shift left logical variableSLT Set on less than (signed)SLTI Set on less than immediate (signed)SLTIU Set on less than immediate unsignedSLTU Set on less than unsignedSRA Shift right arithmeticSRL Shift right logicalSRLV Shift right logical variableSUB SubtractSUBU Subtract unsignedSW Store wordSYSCALL System callXOR Bitwise exclusive orXORI Bitwise exclusive or immediate

INSTRUÇÕES PIC16F8773

INSTRUÇÕES PIC16F877

6025/04/2017

Page 11: Parte 1 4. CONJUNTO DE INSTRUÇÕES IDE 5. BITS DE ... - PB... · • Os montadores e compiladores atuais possuem seus próprios editores de texto. • Os primeiros montadores e compiladores

25/04/2017

11

INSTRUÇÕES PIC16F8773

• PIC16F877• O MPLAB® monta os bits não usados como “zero”.• Um opcode com bits não usados em “um” não é

apresentado na coluna “disassembly”.• Zeros à esquerda não podem ser omitidos.

6125/04/2017

f Register File Adress* 00h até 7Fh – 7 bitsW Working Register / Acumulator 00h até FFh – 8 bitsb Bit Address 0h até 7h – 3 bitsk Constant, 8 bits 00h até FFh – 8 bitsx Don´t Care (bit não usado)d Destination 0h até 1h – 1 bit

PC Program Counter** 000h até 7FFh – 11 bits

Siglas

* São 9 bits no total.** São 13 bits no total.

INSTRUÇÕES PIC16F8773

6225/04/2017

Siglas• O file é um registrador localizado na SRAM.• A palavra “f” é de 8 bits porque a MCU é de 8 bits.• O endereço “f” é de 7 bits porque cada banco da SRAM é

formado por 7 bits.

• “W” é um registrador de 8 bits, tal como os registradoreslocalizados no file registers.

• Sempre um dos argumentos da ULA é o acumulador.• Em outros P´s, o registrador “W” é chamado de “A”.• Em P´s de 16 bits, o acumulador é dividido em “AH” e “AL”.

INSTRUÇÕES PIC16F8773

6325/04/2017

Siglas

• O bit address seleciona um bit em umapalavra de 8 bits, pois a MCU é de 8 bits.

• O bit address possui 3 bits paraendereçar as 8 posições.

• A constante é um número de 8 bits,proveniente do barramento de dados, de 8 bits.

INSTRUÇÕES PIC16F8773

6425/04/2017

Categorias

• Os dois bits mais significativos do opcode sãousados na identificação da família da instrução.

• OPCODE<13:12>.• Cada família possui uma estrutura para o

opcode.

INSTRUÇÕES PIC16F8773

6525/04/2017

Família de instruções sobre bytes (00)01 ANDWF02 IORWF03 XORWF04 ADDWF05 SUBWF06 COMF07 INCF08 DECF09 INCFSZ10 DECFSZ

11 RLF12 RRF13 SWAPF14 MOVF15 CLRF16 CLRW17 MOVWF18 NOP

W: Work register (accumulator)F: File registerOPCODE<13:12> = 00

INSTRUÇÕES PIC16F8773

6625/04/2017

SUBWFDECFIORWFANDWFXORWFADDWFMOVFCOMFINCFDECFSZRRFRLFSWAPFINCFSZ

416DEC

Bit08Bit09Bit10Bit11

Bit12Bit13

CS

Bit07

NOP

MOVWF

CLRW

CLRF

d

Seleção das instruções sobre bytes (00)

Page 12: Parte 1 4. CONJUNTO DE INSTRUÇÕES IDE 5. BITS DE ... - PB... · • Os montadores e compiladores atuais possuem seus próprios editores de texto. • Os primeiros montadores e compiladores

25/04/2017

12

INSTRUÇÕES PIC16F8773

6725/04/2017

Instrução Tipo01 SUB WF Aritmética02 DEC F Aritmética03 IOR WF Lógica04 AND WF Lógica05 XOR WF Lógica06 ADD WF Aritmética07 MOV F Movimentação08 COM F Lógica09 INC F Aritmética10 DEC FSZ Aritmética11 RR F Lógica12 RL F Lógica13 SWAPF Lógica14 INC FSZ Aritmética

Classificação – Tipo 1 (00)INSTRUÇÕES PIC16F8773

6825/04/2017

Estrutura da instrução sobre bytes – Tipo 1 (00)

• 4 bits para seleção da operação, OPCODE<11:8>.• f: Endereço do registrador que contém um dos

argumentos, OPCODE<6:0>.• d: OPCODE<7>.• Definição do registrador que conterá o resultado.

• d = 0: O resultado é enviado para W.• d = 1: O resultado é enviado para file.

SUBWFDECFIORWFANDWFXORWFADDWFMOVFCOMFINCFDECFSZRRFRLFSWAPFINCFSZ

0 dseleção file13 12 8 7 6 0

011

INSTRUÇÕES PIC16F8773

6925/04/2017

Estrutura da instrução sobre bytes – tipo 2 (00)

• 5 bits para seleção da operação, OPCODE<11:7>.• f: Endereço do registrador que contém um dos

argumentos, OPCODE<6:0>.

NOP

MOVWF

CLRW

CLRF 0 seleção file13 12 7 6 0

011

Instrução Tipo15 NOP -

16 MOV WF Movimentação

17 CLR W Lógica/Aritmética

18 CLR F Lógica/Aritmética

INSTRUÇÕES PIC16F8773

7025/04/2017

Sintaxe para o tipo 1 – f,d01 ANDWF f,d02 IORWF f,d03 XORWF f,d04 ADDWF f,d05 SUBWF f,d06 COMF f,d07 INCF f,d08 DECF f,d09 INCFSZ f,d10 DECFSZ f,d11 RLF f,d12 RRF f,d13 SWAPF f,d14 MOVF f,d

INSTRUÇÕES PIC16F8773

7125/04/2017

Sintaxe para o tipo 2

1 CLRF f2 CLRW3 MOVWF f4 NOP

INSTRUÇÕES PIC16F8773

7225/04/2017

Instrução Nibble 3 Nibble 2 Nibble 1 Nibble 001 SUB WF 00b 0010b (02d) dfff ffff

02 DEC F 00b 0011b (03d) dfff ffff

03 IOR WF 00b 0100b (04d) dfff ffff

04 AND WF 00b 0101b (05d) dfff ffff

05 XOR WF 00b 0110b (06d) dfff ffff

06 ADD WF 00b 0111b (07d) dfff ffff

07 MOV F 00b 1000b (08d) dfff ffff

08 COM F 00b 1001b (09d) dfff ffff

09 INC F 00b 1010b (10d) dfff ffff

10 DEC FSZ 00b 1011b (11d) dfff ffff

11 RR F 00b 1100b (12d) dfff ffff

12 RL F 00b 1101b (13d) dfff ffff

13 SWAPF 00b 1110b (14d) dfff ffff

14 INC FSZ 00b 1111b (15d) dfff ffff

Códigos para o tipo 1

Seleção da função

7-bit file addressFamília

Page 13: Parte 1 4. CONJUNTO DE INSTRUÇÕES IDE 5. BITS DE ... - PB... · • Os montadores e compiladores atuais possuem seus próprios editores de texto. • Os primeiros montadores e compiladores

25/04/2017

13

INSTRUÇÕES PIC16F8773

7325/04/2017

Instrução Nibble 3 Nibble 2 Nibble 1 Nibble 001 NOP 00b 0000b (00d) 0xx0 0000

02 MOV WF 00b 0000b (00d) 1fff ffff

03 CLR W 00b 0001b (01d) 0xxx xxxx

04 CLR F 00b 0001b (01d) 1fff ffff

Seleção da função

Família Bit 7

Códigos para o tipo 2

• Onde existe irrelevância, somente asubstituição total por zero gera códigona coluna disassembly do MPLAB™.

• Na programação pelo MPASM™,todas as irrelevâncias valem zero.

INSTRUÇÕES PIC16F8773

7425/04/2017

Seleção das funções do tipo 2

24DEC

Bit07Bit08

Bit09Bit10Bit11Bit12Bit13

CS

NOP

MOVWF

CLRW

CLRF

INSTRUÇÕES PIC16F8773

7525/04/2017

1 AND WF2 IOR WF3 XOR WF4 ADD WF5 SUB WF

Operações de dois operandos com bytes

• 0 f 127 (7 bits)• Se d=0: “W” = “f” op “W”• Se d=1: “f” = “f” op “W”

INSTRUÇÕES PIC16F8773

7625/04/2017

1 COM F2 INC F3 DEC F4 INC FSZ5 DEC FSZ6 RL F7 RR F8 SWAP F9 MOV F

Operações de um operando com bytes

• 0 f 127 (7 bits)• Se d=0: “W” = op “f”• Se d=1: “f” = op “f”

INSTRUÇÕES PIC16F8773

7725/04/2017

1 CLR W (sem operandos)2 CLR F (um operando)

Operações diferentes com bytes

• 0 f 127 (7 bits)• Se bit7=0: CLRW “W” = op “W”• Se bit7=1: CLRF “f” = op “f”

• As duas instruções clear não sãoagrupadas e identificadas pelo destiny.

• Isto se deve ao fato das suas sintaxesserem diferentes.

INSTRUÇÕES PIC16F8773

7825/04/2017

1 CLRW2 NOP

Operações com bytes sem operandos

Page 14: Parte 1 4. CONJUNTO DE INSTRUÇÕES IDE 5. BITS DE ... - PB... · • Os montadores e compiladores atuais possuem seus próprios editores de texto. • Os primeiros montadores e compiladores

25/04/2017

14

INSTRUÇÕES PIC16F8773

7925/04/2017

Família de instruções sobre bytes sobre bits (01)

1 BCF2 BSF3 BTFSC4 BTFSS

F: File registerOPCODE<13:12> = 01

INSTRUÇÕES PIC16F8773

8025/04/2017

• 2 bits para seleção da operação, OPCODE<11:10>.• b: Campo de bits OPCODE<9:7>.

• Seleciona quais sofrerão a ação.• f: Endereço do registrador que contém os bits, OPCODE<6:0>.

Estrutura das instruções sobre bits (01)

0 bitseleção file13 12 7 6 0

19

INSTRUÇÕES PIC16F8773

8125/04/2017

Instrução Nibble 3 Nibble 2 Nibble 1 Nibble 001 BC F 01 00bb bfff ffff

02 BS F 01 01bb bfff ffff

03 BT FSC 01 10bb bfff ffff

04 BT FSS 01 11bb bfff ffff

7-bit file address

Seleção da função

Seleção do bit

Família

Código das instruções sobre bits (01)INSTRUÇÕES PIC16F8773

8225/04/2017

24DEC

Bit10Bit11

Bit12Bit13

CS

BCF

BSF

BTFSC

BTFSS

Seleção das instruções sobre bits (01)

INSTRUÇÕES PIC16F8773

8325/04/2017

Sintaxe das instruções sobre bits (01)

1 BCF f,b2 BSF f,b3 BTFSC f,b4 BTFSS f,b

INSTRUÇÕES PIC16F8773

8425/04/2017

1 ADDLW2 ANDLW3 IORLW4 MOVLW5 SUBLW6 XORLW7 RETLW

Família de instruções sobre literais (11)

W: Work register (accumulator)L: Literal ou Constante ou DadoOPCODE<13:12> = 11

Page 15: Parte 1 4. CONJUNTO DE INSTRUÇÕES IDE 5. BITS DE ... - PB... · • Os montadores e compiladores atuais possuem seus próprios editores de texto. • Os primeiros montadores e compiladores

25/04/2017

15

INSTRUÇÕES PIC16F8773

8525/04/2017

• 4 bits para seleção da operação, OPCODE<11:8>.• k: Número de 8 bits.• “k” representa o número (literal) que será operado com “W”.

1 seleção k (literal)13 12 8 7 0

111

Família de instruções sobre literais (11)INSTRUÇÕES PIC16F8773

8625/04/2017

Instrução Nibble 3 Nibble 2 Nibble 1 Nibble 001 MOV LW 11 00xx kkkk kkkk

02 RET LW 11 01xx kkkk kkkk

03 IOR LW 11 1000 kkkk kkkk

04 AND LW 11 1001 kkkk kkkk

05 XOR LW 11 1010 kkkk kkkk

- 11 1011 xxxx xxxx

06 SUB LW 11 110x kkkk kkkk

07 ADD LW 11 111x kkkk kkkk

8-bit Constant

Seleção da função

Família

Código das instruções sobre literais (11)

INSTRUÇÕES PIC16F8773

8725/04/2017

• A literal (L) é operada com o acumulador (W).• O resultado é salvo no acumulador (W).

Lógicas

Aritméticas

Movimentação

1 AND LW2 IOR LW3 XOR LW4 ADD LW5 SUB LW6 MOV LW7 RET LW

Classificação das instruções sobre literais (11)INSTRUÇÕES PIC16F8773

8825/04/2017

416DEC

Bit08Bit09Bit10Bit11

Bit12Bit13

CS

IORANDXOR

MOVLW

RETLW

SUBLW

ADDLW

Lógicas

Aritméticas

Movim

entação

Seleção das instruções sobre literais (11)

INSTRUÇÕES PIC16F8773

8925/04/2017

1 ANDLW k2 IORLW k3 XORLW k4 ADDLW k5 SUBLW k6 MOVLW k7 RETLW k

• 0 k 255• “W” = “k” op “W”

Sintaxe das instruções sobre literais (11)INSTRUÇÕES PIC16F8773

9025/04/2017

Sobre bytes e sobre literais

AND LWIOR LWXOR LWADD LWSUB LWMOV LWRET LW

AND WFIOR WFXOR WFADD WFSUB WFMOV WF

Lógicas

Aritméticas

Movimentação

FileFamília 00

LiteralFamília 11

Page 16: Parte 1 4. CONJUNTO DE INSTRUÇÕES IDE 5. BITS DE ... - PB... · • Os montadores e compiladores atuais possuem seus próprios editores de texto. • Os primeiros montadores e compiladores

25/04/2017

16

INSTRUÇÕES PIC16F8773

9125/04/2017

1 CLRWDT2 SLEEP3 RETURN4 RETFIE

• Os bits de identificação desta família também são 00.• OPCODE<13:12> = 00

Família de instruções de controle (00)INSTRUÇÕES PIC16F8773

9225/04/2017

Instrução Nibble 3 Nibble 2 Nibble 1 Nibble 0

01 RETURN 00 0000 0000 1000

02 RETFIE 00 0000 0000 1001

03 SLEEP 00 0000 0110 0011

04 CLRWDT 00 0000 0110 0100

Instrução Nibble 3 Nibble 2 Nibble 1 Nibble 0

01 NOP 00 0000 0xx0 0000

03 MOVWF 00 0000 1fff ffff

Apesar de parecidos, estes códigos não são confundidos com NOP e MOVWF.Família

Código das instruções de controle (00)

00_0000_0 seleção13 7 6 0

INSTRUÇÕES PIC16F8773

9325/04/2017

1 GOTO2 CALL

Família de instruções de desvio (10)INSTRUÇÕES PIC16F8773

• 1 bit para seleção da operação, OPCODE<11>.• k: Número de 11 bits OPCODE<10:0>.• Instruções: CALL ou GOTO; instruções de desvio.• CALL e GOTO atuam sobre a program flash.• “k” representa o endereço dentro da página da flash.• Cada página possui 11 bits de endereço.

9425/04/2017

Estrutura das instruções de desvio (10)

1 sel k (literal)13 12 10 0

011

INSTRUÇÕES PIC16F8773

9525/04/2017

De desvio (10)Instrução Nibble 3 Nibble 2 Nibble 1 Nibble 0

01 CALL 10 0kkk kkkk kkkk

02 GOTO 10 1kkk kkkk kkkk

11-bit Constant

• “k” representa o endereço dentro da página da flash.• “k” contém os bits do endereço, OPCODE<10:0>.• “k” seleciona alinha na página da flash.• Cada página possui 11 bits de endereço.

Família

Seleção

INSTRUÇÕES PIC16F8773

9625/04/2017

Nibble 3

• O terceiro nibble da instruçãoidentifica a família da instrução.

• OPCODE<13:12>.• 00b: Sobre byte (tipos 1 e 2)• 00b: De controle• 01b: Sobre bit• 10b: De desvio• 11b: Sobre literal

Page 17: Parte 1 4. CONJUNTO DE INSTRUÇÕES IDE 5. BITS DE ... - PB... · • Os montadores e compiladores atuais possuem seus próprios editores de texto. • Os primeiros montadores e compiladores

25/04/2017

17

INSTRUÇÕES PIC16F8773

9725/04/2017

Padrões de estrutura de opcode

d0 0

13 12 11 10 9 8 7 6 5 4 3 2 1 0

seleção file address

0 0 seleção13 12 11 10 9 8 7 6 5 4 3 2 1 0

file address

1 1

13 12 11 10 9 8 7 6 5 4 3 2 1 0

seleção literal

0 0 0 0 0 0 0

13 12 11 10 9 8 7 6 5 4 3 2 1 0

seleção

1 0

13 12 11 10 9 8 7 6 5 4 3 2 1 0

program addresssel.

10

13 12 11 10 6 5 4 3 2 1 09 8 7

sel. bit addr. file address

Tipo 1

Tipo 2

Sobre bit

Sobre literal

De controle

De desvio

Sobre byte

INSTRUÇÕES PIC16F8773

9825/04/2017

Padrões de estrutura de opcode

d0 0

13 12 11 10 9 8 7 6 5 4 3 2 1 00

seleção file address

0 0 seleção13 12 11 10 9 8 7 6 5 4 3 2 1 0

file address

1 1

13 12 11 10 9 8 7 6 5 4 3 2 1 0

seleção literal

0 0 0 0 0 0 0

13 12 11 10 9 8 7 6 5 4 3 2 1 0

seleção

1 0

13 12 11 10 9 8 7 6 5 4 3 2 1 0

program addresssel.

10

13 12 11 10 6 5 4 3 2 1 09 8 7

sel. bit addr. file address

SUBWFDECFIORWFANDWFXORWFADDWFMOVFCOMFINCFDECFSZRRFRLFSWAPFINCFSZ

NOPMOVWFCLRWCLRF

BCFBSFBTFSCBTFSS

ANDLWIORLWXORLWADDLWSUBLWMOVLWRETLW

CLRWDTSLEEPRETURNRETFIE

GOTOCALL

INSTRUÇÕES PIC16F8773

9925/04/2017

Padrões de estrutura de opcode

d0 0

13 12 11 10 9 8 7 6 5 4 3 2 1 0

seleção file address

0 0 seleção13 12 11 10 9 8 7 6 5 4 3 2 1 0

file address

1 1

13 12 11 10 9 8 7 6 5 4 3 2 1 0

seleção literal

0 0 0 0 0 0 0

13 12 11 10 9 8 7 6 5 4 3 2 1 0

seleção

1 0

13 12 11 10 9 8 7 6 5 4 3 2 1 0

program addresssel.

10

13 12 11 10 6 5 4 3 2 1 09 8 7

sel. bit addr. file address

Dois argumentos

Um argumento

Sem argumento

INSTRUÇÕES PIC16F8773

10025/04/2017

Seleção das cinco famílias

24DEC

Bit12Bit13

Sobre byte / De controleSobre bitDe desvioSobre literal

INSTRUÇÕES PIC16F8773

10125/04/2017

Instruções de dois ciclos – 2TCY

1 BTFSC2 BTFSS3 DECFSZ4 INCFSZ5 CALL6 GOTO7 RETURN8 RETLW9 RETFIE

Condicional

Desvio

INSTRUÇÕES PIC16F8773

10225/04/2017

Instruções não usadas

Instrução Nibble 3 Nibble 2 Nibble 1 Nibble 0

01 OPTION 00 0000 0110 0010

02 TRIS 00 0000 0110 0fff

• Não há proteção contra opcode inválido no chip.• Um opcode inválido leva a uma ação inesperada.

Page 18: Parte 1 4. CONJUNTO DE INSTRUÇÕES IDE 5. BITS DE ... - PB... · • Os montadores e compiladores atuais possuem seus próprios editores de texto. • Os primeiros montadores e compiladores

25/04/2017

18

INSTRUÇÕES PIC16F8773

10325/04/2017

Bits de estado (SR) afetadosAND - - ZIOR - - ZXOR - - ZADD C DC ZSUB C DC ZCLRW - - ZCLRF - - ZCOMF - - ZINCF - - ZDECF - - ZRLF C - ZRRF C - Z

SWAPF - - ZMOVF - - Z

Bits de estadoINSTRUÇÕES PIC16F8773

10425/04/2017

Bits de estado (SR) afetadosADD C DC ZSUB C DC ZRLF C - ZRRF C - Z

Bits de estado

• Nas instruções acima, é preciso considerarque a resposta é uma palavra de 9 bits.

• A calculadora deve ser configurada para 9 bits.• Nas demais operações, a calculadora deve ser

configurada para 8 bits.

INSTRUÇÕES PIC16F8773

10525/04/2017

Instrução 3FFFh• Quando a program memoy está

apagada, todos os seus bits valem “1”.• Todos os 8k opcodes valem 3FFFh.

Instrução Nibble 3 Nibble 2 Nibble 1 Nibble 007 ADD LW 11 111x kkkk kkkk

• x = 1

• Como x=1, o código não aparece na coluna disassembly.• ADDLW ffh

• Esta instrução equivale a SUBLW 01h

• O acumulador é decrementado uma unidade.

CONJUNTO DE INSTRUÇÕES4

10625/04/2017

CONJUNTO DE INSTRUÇÕES

CONJUNTO DE INSTRUÇÕES4

10725/04/2017

NOP

• No Operation.• Não afeta os bits de estado.

Sintaxe: NOP

• O NOP é usado, principalmente, em situações nasquais se deseja que a execução de um programaleve uma determinada quantidade de tempo.

• O uso do NOP permite aumentar o tempo deexecução do programa.

CONJUNTO DE INSTRUÇÕES4

10825/04/2017

NOP – Exemplo de aplicação

Programa principal

Rotina 1

Rotina 2

Mais curta do que Rotina 1

Programa principal

Teste condicional

NOP’s

• O programa leva omesmo tempo deexecução nas duaspossibilidades.

Page 19: Parte 1 4. CONJUNTO DE INSTRUÇÕES IDE 5. BITS DE ... - PB... · • Os montadores e compiladores atuais possuem seus próprios editores de texto. • Os primeiros montadores e compiladores

25/04/2017

19

CONJUNTO DE INSTRUÇÕES4

10925/04/2017

ANDWF e ANDLW

ANDLW

“W” = “k” AND “W”

ANDWF

d=0: “W” = “f” AND “W”d=1: “f” = “f” AND “W”

• “E” lógico.• Afetam o bit de estado “Z”.

Sintaxe: ANDWF f,dSintaxe: ANDLW k

CONJUNTO DE INSTRUÇÕES4

11025/04/2017

IORWF e IORLW

IORLW

“W” = “k” IOR “W”

IORWF

d=0: “W” = “f” IOR “W”d=1: “f” = “f” IOR “W”

• “OU” lógico.• Afetam o bit de estado “Z”.

Sintaxe: IORWF f,dSintaxe: IORLW k

CONJUNTO DE INSTRUÇÕES4

11125/04/2017

XORWF e XORLW

XORLW

“W” = “k” XOR “W”

XORWF

d=0: “W” = “f” XOR “W”d=1: “f” = “f” XOR “W”

• “OU exclusivo” lógico.• Afetam o bit de estado “Z”.

Sintaxe: XORWF f,dSintaxe: XORLW k

CONJUNTO DE INSTRUÇÕES4

11225/04/2017

ADDWF e ADDLW

ADDLW

“W” = “k” ADD “W”

ADDWF

d=0: “W” = “f” ADD “W”d=1: “f” = “f” ADD “W”

• Adição aritmética.• Afetam os bits de estado “Z”, “C” e “DC”.

Sintaxe: ADDWF f,dSintaxe: ADDLW k

CONJUNTO DE INSTRUÇÕES4

11325/04/2017

SUBWF e SUBLW

SUBLW

“W” = “k” SUB “W” (W=l – W)

SUBWF

d=0: “W” = “f” SUB “W” (W=f–W )d=1: “f” = “f” SUB “W” (f=f–W )

• Subtração aritmética.• Afetam os bits de estado “Z”, “C” e “DC”.

Sintaxe: SUBWF f,dSintaxe: SUBLW k

• A subtração não é comutativa.• f ou L é o minuendo.• W é o subtraendo.

CONJUNTO DE INSTRUÇÕES4

11425/04/2017

ADD e SUB

• O bit C pode ser considerado o nono bit do resultado.• ADD permite adicionar dois números de 8 bits

gerando um número de nove bits (000h a 1FFh).• Em ADD, o bit C representa o nono bit do resultado.• SUB permite subtrair dois números de 8 bits gerando

um número de nove bits.• Em SUB, o bit C representa o sinal

• C=1: Resposta positiva.• C=0: Resposta negativa.

Page 20: Parte 1 4. CONJUNTO DE INSTRUÇÕES IDE 5. BITS DE ... - PB... · • Os montadores e compiladores atuais possuem seus próprios editores de texto. • Os primeiros montadores e compiladores

25/04/2017

20

CONJUNTO DE INSTRUÇÕES4

11525/04/2017

Subtração negativa

MOVLW 0xae ;W = 0xAESUBLW 0x45 ;W = 0x45 - 0xAEMOVWF 0x23 ;SRAM(0x23) = W

256 + (69 – 174) = 151

W = L – WW = 0x45 – 0xAE

100h + 45h – AEh = 97h

AEh – 45h: C = 145h – AEh: C = 0

• Em subtração negativa, a resposta de 8 bitsrepresenta o resultado adicionado a 100h.

• Para saber o real resultado, é preciso converter ovalor fornecido para a base decimal e subtrair 256.

CONJUNTO DE INSTRUÇÕES4

11625/04/2017

CLRW e CLRF

• CLRW: Apaga o conteúdo de “W”.• CLRF: Apaga o conteúdo de “f”.• Afetam o bit de estado “Z”.

CLRF

“f” = 00h

“Z” = 1

CLRW

“W” = 00h

“Z” = 1

Sintaxe: CLRWSintaxe: CLRF f

CONJUNTO DE INSTRUÇÕES4

11725/04/2017

COMF

• Complementa o conteúdo de “f”.• Afeta o bit de estado “Z”.

d=0: “W” = /“f”d=1: “f” = /“f”

Sintaxe: COMF f,d

• O conteúdo de “f” é complementado bit a bit.• Equivale a fazer 0xFF – “f”

CONJUNTO DE INSTRUÇÕES4

11825/04/2017

INCF e DECF

• INCF: Incrementa o conteúdo de “f”.• DECF: Decrementa o conteúdo de “f”.• Afetam o bit de estado “Z”.

INCF

d=0: “W” = “f” + 1d=1: “f” = “f” + 1

DECF

d=0: “W” = “f” – 1d=1: “f” = “f” – 1

Sintaxe: INCF f,dSintaxe: DECF f,d

CONJUNTO DE INSTRUÇÕES4

11925/04/2017

INCF e DECF• INCF e DECF são cíclicos.• Quando 0xFF é atingido, INC produz 0x00.• Quando 0x00 é atingido, DEC produz 0xFF.• O bit “C” não é afetado.

FFhFEh

01h00h

Valor

Z=1

INCF

FFhFEh

01h00h

Valor

Z=1

DECF

CONJUNTO DE INSTRUÇÕES4

12025/04/2017

INCF e DECF

• O bit Z pode ser usado para incrementarou decrementar palavras de mais de 8 bits.

• O bit Z é somado ao high byte.• O INCF é efetuado sobre o low byte.• Para cada INCF, é efetuada a adição de Z

com o high byte.• Em cada overflow do low byte, Z = 1, o

high byte sofre um incremento por meio daadição.

Page 21: Parte 1 4. CONJUNTO DE INSTRUÇÕES IDE 5. BITS DE ... - PB... · • Os montadores e compiladores atuais possuem seus próprios editores de texto. • Os primeiros montadores e compiladores

25/04/2017

21

CONJUNTO DE INSTRUÇÕES4

12125/04/2017

RLF e RRF

• RLF: Gira o conteúdo de “f” para a esquerda.• RRF: Gira o conteúdo de “f” para a direita.• Afetam o bit de estado “C”.

RLF

d=0: “W” = RL “f”d=1: “f” = RL “f”

RRF

d=0: “W” = RR “f”d=1: “f” = RR “f”

Sintaxe: RLF f,dSintaxe: RRF f,d

O carry (C) estáincluído (9 bits).

CONJUNTO DE INSTRUÇÕES4

12225/04/2017

RLF – C=0• Configurando, inicialmente, C=0, a instrução RLF corresponde

à multiplicação de um número inteiro de 8 bits por 2.• É possível multiplicar por 2 números na faixa de 0 a 255 (00h

a FFh).• O valor resultante do bit C indica a ocorrência de um overflow.• Em caso de overflow, o resultado da multiplicação

corresponde ao valor do registrador adicionado a 256 (100h).• O máximo operando que não gera overflow é 127 (7Fh), que,

multiplicado por 2, resulta em 254 (0FEh).• O mínimo operando que gera overflow é 128 (80h), que,

multiplicado por 2, resulta em 256 (100h).• O máximo operando é 255 (FFh), que, multiplicado por 2,

resulta em 510 (1FEh).

Vide exemplos

CONJUNTO DE INSTRUÇÕES4

12325/04/2017

RLF – C=1• Configurando, inicialmente, C=1, a instrução RLF corresponde

à multiplicação de um número de 9 bits (fracionário) por 2.• É possível multiplicar por 2 números na faixa de 0 a 255,5

(00,0h a FF,8h).• O valor resultante do bit C indica a ocorrência de um overflow.• Em caso de overflow, o resultado da multiplicação

corresponde ao valor do registrador adicionado a 256 (100h).• O máximo operando que não gera overflow é 127,5 (7F,8h),

que, multiplicado por 2, resulta em 255 (0FFh).• O mínimo operando que gera overflow é 128,5 (80,8h), que,

multiplicado por 2, resulta em 257 (101h).• O máximo operando é 255,5 (FF,8h), que, multiplicado por 2,

resulta em 511 (1FFh).

Vide exemplos

CONJUNTO DE INSTRUÇÕES4

12425/04/2017

RRF – C=0

• Configurando, inicialmente, C=0, a instrução RRFcorresponde à divisão de um número inteiro de 8 bits por 2.

• É possível dividir números na faixa de 0 a 255 (00h a FFh).• O valor resultante do bit C indica a ocorrência de um bit

fracionário se o operando era ímpar (0,8h).• O máximo operando é 255 (FFh), que, dividido por 2,

resulta em 127,5 (7F,8h).

Vide exemplos

CONJUNTO DE INSTRUÇÕES4

12525/04/2017

RRF – C=1

• Configurando, inicialmente, C=1, a instrução RRFcorresponde à divisão de um número inteiro de 9 bits por 2.

• É possível dividir números na faixa de 0 a 511 (000h a 1FFh).• O valor resultante do bit C indica a ocorrência de um bit

fracionário se o operando era ímpar (0,8h).• O máximo operando é 511 (1FFh), que, dividido por 2, resulta

em 255,5 (FF,8h).

Vide exemplos

CONJUNTO DE INSTRUÇÕES4

12625/04/2017

O significado do carry em RLF e RRF

• O programa pode interpretar C=1, no início, como umindicativo de número inteiro entre 100h e 1FFh.

• O programa pode interpretar C=1, no início, como umindicativo de número fracionário entre 00,8h e FF,8h.

• Ao usar RLF, C=1 no início deve, obrigatoriamente, serinterpretado como a parte facionária (00,8h).

• Ao usar RRF, C=1 no início deve, obrigatoriamente, serinterpretado como overflow (100h).

• Ao obter C=1 após RLF, deve, obrigatoriamente, serinterpretado como overflow (100h).

• Ao obter C=1 após RRF, deve, obrigatoriamente, serinterpretado a parte facionária (00,8h).

Page 22: Parte 1 4. CONJUNTO DE INSTRUÇÕES IDE 5. BITS DE ... - PB... · • Os montadores e compiladores atuais possuem seus próprios editores de texto. • Os primeiros montadores e compiladores

25/04/2017

22

CONJUNTO DE INSTRUÇÕES4

12725/04/2017

SWAPF

• Permuta os nibbles do conteúdo de “f”.• Afeta o bit de estado “Z”.

d=0: “W” = SWAP “f”d=1: “f” = SWAP “f”

Sintaxe: SWAPF f,d

CONJUNTO DE INSTRUÇÕES4

12825/04/2017

SWAPF• Útil para fazer uma comunicação paralela de quatro

bits sobre palavras de oito bits.• Isto permite economia no hardware de comunicação.• Primeiramente, o nibble menos significativo é

enviado.• O SWAPF é executado.• O nibble mais significativo é enviado.• A frequência da comunicação cai abaixo da metade,

pois tempo é perdido na execução de SWAPF.

CONJUNTO DE INSTRUÇÕES4

12925/04/2017

MOVF

• Copia o conteúdo de “f”.• Afeta o bit de estado “Z”.

d=0: “W” = “f”d=1: “f” = “f”

Sintaxe: MOVF f,d

• A opção “f” = “f” é usada, por exemplo, paraverificar se o conteúdo de “f” é zero.

• Se for zero, Z=1.

CONJUNTO DE INSTRUÇÕES4

13025/04/2017

MOVF

• A opção mais usada é aquela onde d=0b.• Nesta situação, o MPLAB® permite o uso de

uma notação simplificada.• MOVF f,d = MOVFW f.• Esta simplificação pode ser usada somente

se o montador em uso é o MPLAB®.• Esta notação simplificada não aparece nos

datasheets dos chips.• O MPLAB® converte, automaticamente, a

notação simplificada para a notação correta.

CONJUNTO DE INSTRUÇÕES4

13125/04/2017

MOVWF e MOVLW

MOVLW

LW“W” = “k”

MOVWF

WF“f” = “W”

• MOVWF: Copia o conteúdo de “W” para “f”.• MOVLW: Copia o conteúdo de “k” para “W”.• Não afetam os bits de estado.

Sintaxe: MOVWF fSintaxe: MOVLW k

CONJUNTO DE INSTRUÇÕES4

13225/04/2017

MOVFW, MOFWF e MOVLW

MOVFW

MOVWF

MOVLW

Page 23: Parte 1 4. CONJUNTO DE INSTRUÇÕES IDE 5. BITS DE ... - PB... · • Os montadores e compiladores atuais possuem seus próprios editores de texto. • Os primeiros montadores e compiladores

25/04/2017

23

CONJUNTO DE INSTRUÇÕES4

13325/04/2017

BCF e BSF

• 0d f 127d• 0h f 7Fh

• 0d b 7d

• 000b b 111b

• BCF: O bit “b” no registrador “f” vira zero (clear, reset).• BSF: O bit “b” no registrador “f” vira um (set).• Não afetam os bits de estado.

Sintaxe: BCF f,bSintaxe: BSF f,b

CONJUNTO DE INSTRUÇÕES4

13425/04/2017

BTFSC e BTFSS

• Instruções condicionais.• Analisam o bit “b” no registrador “f”.• BTFSC: Pula a próxima instrução se “b” é zero.• BTFSS: Pula a próxima instrução se “b” é um.

• BTFSC: “Bit Test f, Skip if Clear”.• BTFSS: “Bit Test f, Skip if Set”.• Não afetam os bits de estado.

Sintaxe: BTFSC f,bSintaxe: BTFSS f,b

CONJUNTO DE INSTRUÇÕES4

13525/04/2017

INCFSZ e DECFSZ

• Instruções condicionais.• Realizam INC ou DEC.• Analisa o resultado.• Se o resultado é zero,

pula a próximainstrução.

• INCFSZ: “Increment f, Skip if Zero”.• DECFSZ: “Decrement f, Skip if Zero”.• Não afetam os bits de estado.

Sintaxe: INCFSZ f,dSintaxe: DECFSZ f,d

INCFSZ

d=0: “W” = “f” + 1d=1: “f” = “f” + 1

DECFSZ

d=0: “W” = “f” – 1d=1: “f” = “f” – 1

CONJUNTO DE INSTRUÇÕES4

13625/04/2017

INCFSZ e DECFSZ

• Usados em estruturas de repetição (laços).• Um registrador é usado como variável de contagem.• Em cada repetição, INCFSZ ou DECFSZ é

realizado.• Se a variável atingiu o valor zero, o ciclo de

repetições é finalizado.

CONJUNTO DE INSTRUÇÕES4

13725/04/2017

Sobre BTFSC, BTFSS, INCFSZ e DECFSZ

• Skippers.• Instruções condicionais permitem alterar o

próximo valor do PC.• Estas instruções consomem o dobro do tempo.• Este tipo de instrução é chamada de 2TCY.• Se não houver skip: PC = PC+1.• Se houver skip: PC = PC+2.• A instrução pulada é aquela que segue o skipper

na program memory. Se a diretiva ORG é usadaapós o skipper, a instrução pulada nãonecessariamente é aquela que segue a diretiva.

CONJUNTO DE INSTRUÇÕES4

13825/04/2017

CLRWDT

• Não usa argumentos.• Não afeta os bits de estado.• Previne que a MCU reinicie por suspeita de

travamento.• A reiniciação da MCU por suspeita de

travamento é uma ferramenta de segurança.• Este comando reinicia o temporizador

analógico WDT.• Este comando não é necessário se o WDT

está desabilitado.• Este assunto será apresentado mais adiante.

Sintaxe: CLRWDT

Page 24: Parte 1 4. CONJUNTO DE INSTRUÇÕES IDE 5. BITS DE ... - PB... · • Os montadores e compiladores atuais possuem seus próprios editores de texto. • Os primeiros montadores e compiladores

25/04/2017

24

CONJUNTO DE INSTRUÇÕES4

13925/04/2017

SLEEP

• Não usa argumentos.• Não afeta os bits de estado.• Coloca a MCU em modo de baixo consumo de energia.• O modo de baixo consumo é chamado de power down.• Por causa da preocupação com a ecologia, normas

regulamentadoras tem obrigado fabricantes dedispositivos processados a disponibilizar modos deoperação em economia de energia elétrica.

• Este assunto será apresentado mais adiante.

Sintaxe: SLEEP

CONJUNTO DE INSTRUÇÕES4

14025/04/2017

RETURN

• Não usa argumentos.• Não afeta os bits de estado.• Return from subroutine.• Return: Retornar da sub-rotina.• Este assunto será apresentado mais adiante.

Sintaxe: RETURN

CONJUNTO DE INSTRUÇÕES4

14125/04/2017

RETLW

• Não usa argumentos.• Não afeta os bits de estado.• Return with Literal in W.• Coloca a constante “k” no registrador “W”.• “W” = “k”• É uma mistura de RETURN e MOVLW.

Sintaxe: RETLW k

CONJUNTO DE INSTRUÇÕES4

14225/04/2017

RETFIESintaxe: RETFIE

• Não usa argumentos.• Não afeta os bits de estado.• Return From Interrup.• Retornar da interrupção.• Útil quando a sub-rotina é chamada pela interrupção.• Este assunto será apresentado mais adiante.

CONJUNTO DE INSTRUÇÕES4

14325/04/2017

Sintaxe: GOTO kSintaxe: CALL k

• Nas outras instruções, “k” usa 8 bits (dado).• Em GOTO e em CALL, “k” usa 11 bits (flash).• 0d k 2047d• 000h k 7FFh• “k” indica um endereço na página da flash.• “k” indica o endereço da sub-rotina.

• Não afetam os bits de estado.

GOTO e CALLCONJUNTO DE INSTRUÇÕES4

14425/04/2017

• GOTO: Desvio sem retorno.• CALL: Desvio com retorno.• Para que haja retorno, é preciso saber o

endereço de origem.• GOTO pode ser usado na maioria das situações.• CALL é necessário em situações específicas.• Este assunto será apresentado mais adiante.

GOTO e CALL

Page 25: Parte 1 4. CONJUNTO DE INSTRUÇÕES IDE 5. BITS DE ... - PB... · • Os montadores e compiladores atuais possuem seus próprios editores de texto. • Os primeiros montadores e compiladores

25/04/2017

25

CONJUNTO DE INSTRUÇÕES4

14525/04/2017

Tempo

• Instruction Cycle: Tempo para executar uma instrução.• Clock Input: Entrada de relógio (externo)• Instruction Cycle TCY = 200ns (5MHz máximo)• Clock Input = TOSC = 50ns (20MHz máximo)• 200ns = 450ns• 1 ciclo de instrução: 4 períodos de relógio.• O oscilador externo é obtido por meio de cristal ou RC.

CONJUNTO DE INSTRUÇÕES4

14625/04/2017

Ciclo de relógio e de instrução

Instrução 1 Instrução 2 Instrução 3

• A sensibilidade é na borda de descida.• Exemplo para 3 instruções 1TCY.

CONJUNTO DE INSTRUÇÕES4

14725/04/2017

• Q1: Decodificação da instrução.• Q2: Leitura do dado da instrução.• Q3: Processamento da instrução.• Q4: Escrita do dado resultante.

• Todas as etapas representam operaçõesrealizadas pela ULA através do data bus.

• Como se trata de uma MCU de 8 bits,ULA, W e data bus são de 8 bits.

• Todas as etapas implicam em um fluxode informação de 8 bits no máximo.

Ciclo de relógio e de instruçãoCONJUNTO DE INSTRUÇÕES4

14825/04/2017

• Q1: O mnemônico é identificado por meio decircuitos decodificadores baseados nas tabelas demontagem (decode).

• Todas as instruções passam pela etapa dedecodificação.

• As etapas Q2, Q3 e Q4 nem sempre são usadas.• Quando uma etapa não é usada, nenhuma

atividade é realizada a fim de que a frequênciados ciclos de instrução seja mantida constante.

Ciclo de relógio e de instrução

• Q1: Leitura de 6 bits.• Q2: Leitura de 8 bits.• Q4: Escrita de 8 bits.

CONJUNTO DE INSTRUÇÕES4

14925/04/2017

• Todas as instruções usam um ciclo (TCY).• Exceções:

• Teste condicional.• Alteração no PC através de uma instrução.

• Nas exceções, a instrução usa 2 ciclos.• 2TCY = 400ns (mínimo).

1 BTFSC2 BTFSS3 DECFSZ4 INCFSZ5 CALL6 GOTO7 RETURN8 RETLW9 RETFIE

Ciclo de relógio e de instruçãoCONJUNTO DE INSTRUÇÕES4

15025/04/2017

• Muitas informações aqui contidas são encontradasnos data sheets fornecidos pela Microchip©.

• Outras informações são omitidas por tratarem-sede segredo industrial e aqui são apresentadascomo uma suposição para fins didáticos.

Informação

Page 26: Parte 1 4. CONJUNTO DE INSTRUÇÕES IDE 5. BITS DE ... - PB... · • Os montadores e compiladores atuais possuem seus próprios editores de texto. • Os primeiros montadores e compiladores

25/04/2017

26

CONJUNTO DE INSTRUÇÕES4

15125/04/2017

Instrução Q1 Q2 Q3 Q4

ANDWF Decode Lê o file AND W Grava d

IORWF Decode Lê o file IOR W Grava d

XORWF Decode Lê o file XOR W Grava d

ADDWF Decode Lê o file ADD W Grava d

SUBWF Decode Lê o file SUB W Grava d

COMF Decode Lê o file COM Grava d

INCF Decode Lê o file INC Grava d

DECF Decode Lê o file DEC Grava d

RRF Decode Lê o file RR Grava d

RLF Decode Lê o file RL Grava d

SWAPF Decode Lê o file SWAP Grava d

Ciclo de relógio e de instrução

Q2 8-bit dataQ1 6-bit decode

0 dseleção file13 12 7 6 0

18

CONJUNTO DE INSTRUÇÕES4

15225/04/2017

Instrução Q1 Q2 Q3 Q4

ANDLW Decode Lê o literal AND W Grava W

IORLW Decode Lê o literal IOR W Grava W

XORLW Decode Lê o literal XOR W Grava W

ADDLW Decode Lê o literal ADD W Grava W

SUBLW Decode Lê o literal SUB W Grava W

Ciclo de relógio e de instrução

Q2 8-bit dataQ1 6-bit decode

1 seleção literal13 12 7 0

18

CONJUNTO DE INSTRUÇÕES4

15325/04/2017

Instrução Q1 Q2 Q3 Q4

BCF Decode Lê o file BC Grava f

BSF Decode Lê o file BS Grava f

Ciclo de relógio e de instrução

Q2 8-bit dataQ1 6-bit decode

0 bitsel file13 12 7 6 0

19

CONJUNTO DE INSTRUÇÕES4

15425/04/2017

Instrução Q1 Q2 Q3 Q4

CLRW Decode Nada Nada Grava WCLRF Decode Nada Nada Grava fCLRWDT Decode Nada Nada ReiniciaMOVLW Decode Lê o literal Nada Grava WMOVWF Decode Lê W Nada Grava fMOVF Decode Lê o file Nada Grava dSLEEP Decode Nada Nada SLEEPNOP Decode Nada Nada Nada

• Os ciclos onde nada é realizado poderiamser eliminados para ganhar tempo.

• Isso não é feito a fim de que se mantenhaconstante a frequência de instruções (fCY),o que simplifica o funcionamento da MCU.

• A reiniciação feita por CLRWDT diz respeitoao temporizador WDT.

Ciclo de relógio e de instrução

CONJUNTO DE INSTRUÇÕES4

15525/04/2017

Instrução Q1 Q2 Q3 Q4

Se houver skip, o PC é escrito nesta etapa.

Q1 Q2 Q3 Q4

BTFSC Decode Lê o file TEST NadaBTFSS Decode Lê o file TEST NadaINCFSZ Decode Lê o file INC/TEST Grava dDECFSZ Decode Lê o file DEC/TEST Grava d

• Provavelmente o PCH e oPCL são alterados em Q3e em Q4 do segundo TCY.

Ciclo de relógio e de instruçãoCONJUNTO DE INSTRUÇÕES4

15625/04/2017

Instrução Q1 Q2 Q3 Q4

PC é escrito nesta etapa.

Q1 Q2 Q3 Q4

CALL Decode Lê o k Nada NadaGOTO Decode Lê o k Nada Nada

• Provavelmente, o push do CALL é realizado nosQ1 e Q2 do segundo TCY (visto mais adiante).

• Provavelmente, o PCH e o PCL são gravados nosQ3 e Q4 do segundo TCY.

• Como k supera 8 bits, provavelmente o PC<10:8>é lido no Q1, junto com os bits 11 a 13 (suposição).

1 sel k (literal)13 12 10 0

011

Q2 8-bit dataQ1 6-bit decode

Ciclo de relógio e de instrução

Page 27: Parte 1 4. CONJUNTO DE INSTRUÇÕES IDE 5. BITS DE ... - PB... · • Os montadores e compiladores atuais possuem seus próprios editores de texto. • Os primeiros montadores e compiladores

25/04/2017

27

CONJUNTO DE INSTRUÇÕES4

15725/04/2017

Instrução Q1 Q2 Q3 Q4

PC é escrito nesta etapa.

Q1 Q2 Q3 Q4

RETURN Decode Nada Nada NadaRETLW Decode Lê o literal Nada Grava WRETFIE Decode Nada Nada GIE = 0

• Uma hipótese é a de que o PCH e oPCL sejam gravados nos Q3 e Q4 dosegundo TCY.

• Outra hipótese é a de o 13-bit programaddress seja resgatado do stack em Q4por meio do 13-bit address bus.

Ciclo de relógio e de instruçãoCONJUNTO DE INSTRUÇÕES4

15825/04/2017

• Apenas dois ciclos de relógio sãonecessários são usados na gravação doPC nas instruções 2TCY.

• O uso de oito ciclos se deve àmanutenção da sincronia, a preservaçãodo ciclo de instruções.

• Existe a possibilidade de que dois ciclossejam gastos no push e no pop na pinha,porém, por não serem efetuados pelaULA, esses eventos podem ocorrersimultaneamente a outras ações da ULA.

Ciclo de relógio e de instrução

CONJUNTO DE INSTRUÇÕES4

15925/04/2017

• No caso das instruções condicionais,existe a possibilidade de que o skipseja sempre realizado.• Condição satisfeita: PC = PC+2.• Condição não satisfeita: PC = PC+1.

• Nos desvios incondicionais, não háesclarecimentos, no data sheet, sobre oque é executado em Q3.

Ciclo de relógio e de instruçãoCONJUNTO DE INSTRUÇÕES4

16025/04/2017

Padrões de estrutura de opcode

d0 0

13 12 11 10 9 8 7 6 5 4 3 2 1 0

seleção file address

0 0 seleção13 12 11 10 9 8 7 6 5 4 3 2 1 0

file address

1 113 12 11 10 9 8 7 6 5 4 3 2 1 0

seleção literal

0 0 0 0 0 0 013 12 11 10 9 8 7 6 5 4 3 2 1 0

seleção

1 0

13 12 11 10 9 8 7 6 5 4 3 2 1 0

program addresssel.

10

13 12 11 10 6 5 4 3 2 1 09 8 7

sel. bit addr. file address

Q2 8-bit dataQ1 6-bit decode

BITS DE CONFIGURAÇÃO5

16125/04/2017

BITS DE CONFIGURAÇÃO

BITS DE CONFIGURAÇÃO5

16225/04/2017

• Configuration Bits• Selecionam as configurações da PIC®.• Palavra de configuração (configuration word): 14 bits.• Programação em lógica negativa.

• Bit não programado (ativado): 0• Bit programado (desativado): 1

• A palavra de configuração é gravada na flash.• Endereço: 2007h.• Esta posição não pertence à program memory (até 1FFFh).• Esta posição somente pode ser acessada na programação.

Definição

Page 28: Parte 1 4. CONJUNTO DE INSTRUÇÕES IDE 5. BITS DE ... - PB... · • Os montadores e compiladores atuais possuem seus próprios editores de texto. • Os primeiros montadores e compiladores

25/04/2017

28

BITS DE CONFIGURAÇÃO5

16325/04/2017

Formação da palavra

• A configuração padrão é todos os bits desabilitados.• 11 1111 1111 1111h

• Essa configuração é gravada ao realizar o full erase.

BITS DE CONFIGURAÇÃO5

16425/04/2017

Campos

1.FOSC Oscillator Selection bits.2.WDTE Watchdog Timer Enable bit.3.PWRTE Power-up Timer Enable bit.4.CP FLASH Program Memory Code Protection bits.5.BOREN Brown-out Reset Enable bit.6.LVP Low Voltage In-Circuit Serial Programming Enable bits.7.CPD Data EE Memory Code Protection bit.8.WRT FLASH Program Memory Write Enable bit.

BITS DE CONFIGURAÇÃO5

16525/04/2017

Configuração da proteção da FLASH• Campo: CP• FLASH Program Memory Code Protection bits.• Bits de proteção da FLASH.• Bits 13, 12, 5, 4.• Mnemônicos: CP1 (13 e 5) e CP0 (12 e 4) (Code Protection).• Para que haja proteção os bits de mesmo nome devem ser

iguais.

CP1 CP0 Proteção Palavras Explicação1 1 Sem 0 Nada1 0 1F00h a 1FFFh 256 PCH = 11111b0 1 1000h a 1FFFh 4k 2ª metade0 0 0000h a 1FFFh 8k Tudo

BITS DE CONFIGURAÇÃO5

16625/04/2017

Configuração da proteção da FLASH

• As opções 11 (nada) e 00 (tudo) sãoválidas para toda a família mid-range.

• As opções 10 e 11 dependem do modelo,pois o tamanho da program memorypode variar, sendo 8kwords naPIC16F877.

CP1 CP0 Palavras Explicação1 1 0 Nada0 0 8k Tudo

BITS DE CONFIGURAÇÃO5

16725/04/2017

Configuração da proteção da FLASH• A proteção serve para que o programa esteja imune a

cópias não autorizadas.• O segredo do programa criado pelo fornecedor do

produto está protegido.• A única possibilidade para alteração do programa é por

meio da reiniciação de todas as memórias do CHIP, oque, também, impede a cópia do programa.

• A limpeza total do chip (full-erase) reinicia os bits deproteção, os mesmos precisam ser regravados.

• Foram descobertas formas de burlar esta proteção emalguns modelos mais antigos de PIC®, não há garantiasplenas de que o programa esteja totalmente protegido.

BITS DE CONFIGURAÇÃO5

16825/04/2017

Configuração da proteção da FLASH

• A possibilidade de proteção parcial é útilquando se deseja que parte do programaseja configurável pelo usuário.

• Outra possibilidade é a comercialização deuma sub-rotina, que fica na parte protegida,permitindo ao usuário criar seu próprioprograma usando a sub-rotina adquirida.

Page 29: Parte 1 4. CONJUNTO DE INSTRUÇÕES IDE 5. BITS DE ... - PB... · • Os montadores e compiladores atuais possuem seus próprios editores de texto. • Os primeiros montadores e compiladores

25/04/2017

29

BITS DE CONFIGURAÇÃO5

16925/04/2017

• Permite proteção contra leitura da EEPROM (data memory).• A proteção serve para que os dados estejam imunes a cópias.• O segredo da informação está protegido.• A alteração dos dados na EEPROM protegida pode ser feita

por meio da reiniciação de todas as memórias do chip.• Outra forma é apagando toda a EEPROM.• A limpeza total do chip (full-erase) reinicia os bits de proteção.

Configuração da proteção da EEPROMBITS DE CONFIGURAÇÃO5

17025/04/2017

• Campo: CPD.• Também chamado de PD em outros modelos.• Data EE Memory Code Protection.• Bit 8.• 1: EEPROM sem proteção.• 0: EEPROM com proteção.• Independente de CP1 e CP0.• Este assunto será apresentado mais adiante.

Configuração da proteção da EEPROM

BITS DE CONFIGURAÇÃO5

17125/04/2017

Oscilador• Bits 1 e 0.• Mnemônicos: FOSC1 e FOSC0.• Outros modelos também possuem o bit FOSC2.• Este assunto será apresentado mais adiante.

FOSC1 FOSC0 Oscilador Significado1 1 RC Resistor / Capacitor1 0 HS High Speed Crystal / Resonator0 1 XT Crystal / Resonator0 0 LP Low Power Crystal

BITS DE CONFIGURAÇÃO5

17225/04/2017

• In-Circuit Serial Programming.• O ICSP™ permite a gravação do chip

após a montagem do produto.• O ICSP™ dispensa o uso de um

módulo gravador de PIC®.• Isto permite a atualização de firmware.• O ICSP™ é o ideal na produção do

software, junto ao protótipo.

ICSP™

BITS DE CONFIGURAÇÃO5

17325/04/2017

Módulo gravador de PIC®

• É o contrário de ICSP™, a PIC® é gravada forado ambiente de operação.

• Ideal quando já se sabe que o programafunciona e não se deseja realizar alterações.

• Ideal quando se deseja gravar várias unidades.• Há opções para gravação em lotes.

BITS DE CONFIGURAÇÃO5

17425/04/2017

• Campo: WRT.• FLASH Program Memory Write Enable.• Bit 9.• 1: Desabilitado – Impede o uso do ICSP™.• 0: Habilitado – Permite o uso do ICSP™.• Não impede a leitura das memórias internas.

ICSP™

Page 30: Parte 1 4. CONJUNTO DE INSTRUÇÕES IDE 5. BITS DE ... - PB... · • Os montadores e compiladores atuais possuem seus próprios editores de texto. • Os primeiros montadores e compiladores

25/04/2017

30

BITS DE CONFIGURAÇÃO5

17525/04/2017

• Campo: LVP.• Low-Voltage Programming.• Um ICSP™ que não requer uma tensão de alimentação

mais elevada do que a usada na execução dos programas.• Bit 7.• 0: Desabilitado: Exige tensão mais alta na programação.• 1: Habilitado: Dispensa tensão mais alta na programação.

ICSP™BITS DE CONFIGURAÇÃO5

17625/04/2017

• A desabilitação do LVP dá mais segurança àPIC®, pois jamais recebe tensão maiselevada em operação normal.

• A desabilitação do LVP requer hardwaremais sofisticado quando se usa ICSP™, poisrequer tensão superior para gravar o chip.

• A habilitação do LVP aumenta a chance daPIC® ser gravada acidentalmente.

• A habilitação do LVP simplifica o hardwarequando se usa ICSP™, pois a tensão dealimentação é sempre a mesma.

ICSP™

BITS DE CONFIGURAÇÃO5

17725/04/2017

DEBUG

• Campo: DEBUG.• In-Circuit Debugger Mode.• Permite a depuração pelo MPLAB®.• Bit 11.• 1: Desabilitado.• 0: Habilitado.

BITS DE CONFIGURAÇÃO5

17825/04/2017

• Quando habilitado, usa os pinos:• PGC – Programming Clock – Pino 39 DIP.• PGD – Programming Data – Pino 40 DIP.

• Usado com o MPLAB® ICD.

DEBUG

BITS DE CONFIGURAÇÃO5

17925/04/2017

Outros bits

• 6: BODEN – Brown-out Reset Enable bit.• 3: /PWRTE – Power-up Timer Enable bit.• 2: WDTE – Watchdog Timer Enable bit.• Serão apresentados mais adiante.

BITS DE CONFIGURAÇÃO5

18025/04/2017

Módulo grav. de PIC® com ICSP™/PICkit2™

http://www.futurlec.com/Pictures/PIC_Programmer_600.jpg

Page 31: Parte 1 4. CONJUNTO DE INSTRUÇÕES IDE 5. BITS DE ... - PB... · • Os montadores e compiladores atuais possuem seus próprios editores de texto. • Os primeiros montadores e compiladores

25/04/2017

31

BITS DE CONFIGURAÇÃO5

18125/04/2017

http://img1.mlstatic.com/gravador-pic-usb-pickit2-zif-prograd-profissional-mplab-nfe_MLB-O-2926282907_072012.jpg

Módulo grav. de PIC® com ICSP™/PICkit2™BITS DE CONFIGURAÇÃO5

18225/04/2017

Módulo gravador de MCU Atmel

http://www.programmerkit.com/w p-content/uploads/2011/10/programmer.jpg

BITS DE CONFIGURAÇÃO5

18325/04/2017

Módulo gravador de memórias

http://images.batronix.com/products/programmer/BX/USBChipProgrammer-xl.jpg

LITERATURA6

18425/04/2017

LITERATURA

LITERATURA6

18525/04/2017

MPLAB

LITERATURA6

18625/04/2017

• MPASM MPLINK MPLIB User's Guide.• MPASM user's guide with MPLINK and MPLIB.• MPLAB IDE User's Guide.• PIC16F87X Data Sheet.• PICmicro Mid-Range MCU Family Reference Manual.

Microchip©

Page 32: Parte 1 4. CONJUNTO DE INSTRUÇÕES IDE 5. BITS DE ... - PB... · • Os montadores e compiladores atuais possuem seus próprios editores de texto. • Os primeiros montadores e compiladores

25/04/2017

32

LITERATURA6

18725/04/2017

• PEREIRA, F. Microcontroladores PIC, Técnicas Avançadas.2a Edição. Editora Érica, 2002.

• PEREIRA, F. Microcontroladores PIC – Programação em C.7a Edição. Editora Érica, 2010.

Outros