Parte 1 IDE DEFINIÇÃO DEFINIÇÃO DEFINIÇÃO DEFINIÇÃO DEFINIÇÃO

Tamanho: px
Começar a partir da página:

Download "Parte 1 IDE DEFINIÇÃO DEFINIÇÃO DEFINIÇÃO DEFINIÇÃO DEFINIÇÃO"

Transcrição

1 Parte IDE. DEFINIÇÃO LITERATURA DEFINIÇÃO DEFINIÇÃO Componentes DEFINIÇÃO Editor de texto para entrada do código. Debugging do código. Simulador de dispositivo. Assembler (Montador). Compilador. Outros itens. DEFINIÇÃO DEFINIÇÃO Editor de texto Assembler 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. 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. 6

2 DEFINIÇÃO DEFINIÇÃO Debugger Debugger As primeiras versões de IDE para gravação de P s e MCU s possuíam, apenas, o procedimento de gravação do chip. Não era fornecido utilitário para verificação de erros básicos na programação. Versões atuais fornecem opções para a busca por erros básicos. 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ável em questão. Escopo de endereços do chip: Os tamanhos das memórias, das portas, etc, são respeitados. É preciso identificar o modelo do chip. Outros. 7 8 DEFINIÇÃO DEFINIÇÃO Simulador Compilador No passado, não havia como prever se o programa estava correto ou não. A única forma de verificar era por meio da gravação do chip e da execução no próprio chip. A gravação pode ser bastante demorada, tornando o trabalho de criação/edição/correção bastante tedioso. Posteriormente, foi acrescentado o recurso da simulação do chip no computador. Somente depois de concluídas todas as verificações no simulador é que se parte para a verificação na execução pelo chip. A inclusão de compilador no IDE permite o uso de linguagens 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 os limites de endereçamento e os periféricos disponíveis. 9 0 DEFINIÇÃO DEFINIÇÃO Compilador Ciclo de desenvolvimento Compiladores para chips específicos podem ser pacotes de grande valor comercial. Há casos nos quais são oferecidos o ambiente de programação em linguagem de alto nível e, como brinde, recebe-se o kit com o módulo gravador, junto com o chip.

3 DEFINIÇÃO DEFINIÇÃO Código em linguagem C Compilação Código em linguagem de máquina Exemplo de compilador C para PIC DEFINIÇÃO DEFINIÇÃO Compiladores C, Basic e Pascal Compilador de alto nível 6 DEFINIÇÃO 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. 7 8

4 Linguagens Definição Linguagem de máquina: O dispositivo entende. Linguagem humana: O ser humano entende. Linguagem de máquina: Zeros e uns. Linguagem humana: Palavras e números. Assembly: Mnemônicos e números hexadecimais. 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. Linguagem de máquina: Montado. Linguagem humana: Não montado. 9 0 Mnemônicos 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. Montagem É 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 A relação entre o código em linguagem de montagem e 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 de montagem possui algumas irrelevâncias (don t care X) em alguns bits de algumas instruções. Essas irrelevâncias fazem com que a relação biunívoca seja quebrada. Geralmente, os montadores substituem as irrelevâncias por zero. Linguagem de compilação A conversão do código feito em linguagem assembly para o código em linguagem de máquina é chamado de montagem. A conversão do código feito em linguagem de compilação para o código em linguagem de máquina é chamado de compilação. Compiladores empregam códigos específicos da própria linguagem. A linguagem de compilação não depende do dispositivo empregado, não usa os seus mnemônicos. Compiladores não permitem que o usuário lide com opcodes e instruções de máquina. Compiladores, geralmente, não fornecem o código assembly sobre o qual a montagem foi realizada. Compiladores podem ser de baixo nível e de alto nível.

5 Montagem 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. Alguns editores assembly permitem a inclusão de códigos que não fazem parte do assembly puro (diretivas de montagem, comentários, etc). Montagem 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: IA ou i86 ou x86- ( bits). IA-EM6T ou x86-6 (6 bits). 6 Desmontagem Sabendo qual o modelo do dispositivo, pode-se converter o seu 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. Código assembly puro Estrutura 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. 7 8 Código assembly puro Qualquer outra informação que não seja o mnemônico da instrução e seus argumentos numéricos não fazem parte do có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 O código assembly pode conter outras informações além do assembly puro que facilitam a elaboraçã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 seu conjunto próprio de extensões. Essas extensões são perdidas no código disassembly. 9 0

6 6 Debuging Debuging Digitação Assembly com extensões Impossível Conversão feita manualmente ou automaticamente pelo ambiente de desenvolvimento Assembly puro Tanto o código assembly com extensões como o código assembly puro estão em linguagem humana. É na conversão do código assembly com extensões para o código assembly puro que a verificação de erros é realizada. Se o código pôde ser escrito como assembly puro, é porque nenhum erro de sintaxe e de escopo foi encontrado. Uma vez debugado, o código já pode ser montado. Ambiente assembler Ambiente assembler Usuário Automático Montagem Programação Assembly com extensões Assembly puro Desmontagem Linguagem de máquina Leitura Chip Editor de texto ou de hipertexto Debugger Montador Gravador do chip Ambiente compiler Compilação Debugger Tipos de erro Usuário Linguagem de alto nível Linguagem de montagem Montagem Desmontagem Linguagem de máquina Programação Leitura Chip 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. A parte em vermelho geralmente não é disponibilizada. 6

7 7 Debugger O debugger realiza a descoberta de erros porque ele sabe 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 busca por erros de sintaxe ou de escopo. 7 Transfer. MOV. XCHG. STC. CLC. CMC 6. STD 7. CLD 8. STI 9. CLI 0. PUSH. PUSHF. PUSHA. POP. POPF. POPA 6. CBW 7. CWD 8. CWDE 9. IN 0. OUT Mnemônicos x86- (resumido) CISC Arithmetic Logic Misc. ADD. ADC. SUB. SBB. DIV 6. IDIV 7. MUL 8. IMUL 9. INC 0. DEC. CMP. SAL. SAR. RCL. RCR 6. ROL 7. ROR 8. NEG 9. NOT 0. AND. OR. XOR. SHL. SHR NOP 6. LEA 7. INT Jumps 8. CALL 9. JMP 0. JE. JZ. JCXZ. JP. JPE. RET 6. JNE 7. JNZ 8. JECXZ 9. JNP 60. JPO Jumps Unsigned 6. JA 6. JAE 6. JB 6. JBE 6. JNA 66. JNAE 67. JNB 68. JNBE 69. JC 70. JNC Jumps Signed 7. JG 7. JGE 7. JL 7. JLE 7. JNG 76. JNGE 77. JNL 78. JNLE 79. JO 80. JNO 8. JS 8. JNS 8 Exemplos de P x86-. Intel Pentium processor. Intel Pentium Pro processor. Intel Pentium II processor. Intel Pentium II Xeon processor. Intel Celeron processor 6. Intel Pentium III processor 7. Intel Pentium III Xeon processor 8. AdvancedMicroDevices Athlon processor 9. AdvancedMicroDevices Opteron processor 9. ABS. ACS. ADC. ADD. ADF 6. ADR 7. ADRL 8. ALIGN 9. AND 0. ASL. ASN. ASR. ATN. B. BIC 6. BKPT 7. BL 8. BLX 9. BX 0. CDP. CDP. CLZ. CMF. CMN. CMP 6. CNF 7. COS 8. DCx 9. DVF 0. EOR. EQUx. EXP. FABS. FADD. FCMP 6. FCVTDS 7. FCVTSD 8. FCPY 9. FDIV 0. FDV Mnemônicos ARM. FIX 8. LDRSB. FLD 8. LDRSH. FLDMDB 8. LFM. FLDMIA 8. LGN. FLT 8. LOG 6. FMAC 86. LSL 7. FMDHR 87. LSR 8. FMDLR 88. MCR 9. FMRDH 89. MCR 0. FMRDL 90. MCRR. FML 9. MLA. FMSC 9. MNF. FMRS 9. MOV. FMSR 9. MRC. FMUL 9. MRC 6. FMRX 96. MRRC 7. FMSTAT 97. MRS 8. FMXR 98. MSR 9. FNEG 99. MUF 60. FNMAC 00. MUL 6. FNMSC 0. MVF 6. FNMUL 0. MVN 6. FRD 0. NEG 6. FSITO 0. NOP 6. FSQRT 0. NRM 66. FST 06. OPT 67. FSTMDB 07. ORR 68. FSTMIA 08. ORR 69. FSUB 09. PLD 70. FTOSI 0. POL 7. FTOUI. POP 7. FUITO. POW 7. LDC. PUSH 7. LDC. QADD 7. LDF. QDADD 76. LDM 6. QDSUB 77. LDMIA 7. QSUB 78. LDR 8. RDF 79. LDRB 9. RFC 80. LDRH 0. RFS. RMF. RND. ROR. RPW. RRX 6. RSB 7. RSC 8. RSF 9. SBC 0. SFM. SIN. SMLA. SMLAL. SMLAW. SMUL 6. SMULL 7. SMULW 8. SQT 9. STC 0. STC. STF. STM. STMIA. STR. STR 6. STRB 7. STRH 8. STRSB 9. STRSH 0. SUB. SUF. SWI. SWP. TAN. TEQ 6. TST 7. UMLAL 8. UMULL 9. URD 60. WFC 6. WFS 0 Aritmética. ADD. ADC. SUB. SUBI. SBC 6. SBCI 7. AND 8. ANDI 9. OR 0. ORI. EOR. COM. NEG. SBR. CBR 6. INC 7. DEC 8. TST 9. CLR 0. SER Mnemônicos AVR Desvio. RJMP. CALL. RET. RETI. CPSE 6. CP 7. CPC 8. CPI 9. SBRC 0. SBRS. SBIC. SBIS. BRBS. BRBC. BREQ 6. BRNE 7. BRCS 8. BRCC 9. BRSH 0. BRLO. BRMI. BRPL. BRGE. BRLT. BRHS 6. BRHC 7. BRTS 8. BRTC 9. BRVS 0. BRVC. BRIE. BRID Transferência. LD. ST. MOV 6. LDI 7. IN 8. OUT 9. LPM Sobre bits 60. SBI 6. CBI 6. LSL 6. LSR 6. ROL 6. ROR 66. ASR 67. SWAP 68. BSET 69. BCLR 70. BST 7. BLD 7. SEC 7. CLC 7. SEM 7. CLN 76. SEZ 77. CLZ 78. SEI 79. CLI 80. SES 8. CLS 8. SEV 8. CLV 8. SET 8. CLT 86. SEH 87. CLH 88. NOP 89. SLEEP 90. WDR Mnemônicos 80 0x00 0x0 0x0 0x0 0x0 0x0 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 0x0 JBC ACALL LCALL RRC DEC DEC DEC DEC DEC DEC DEC DEC DEC DEC DEC DEC 0x0 JB AJMP RET RL ADD ADD ADD ADD ADD ADD ADD ADD ADD ADD ADD ADD 0x0 JNB ACALL RETI RLC ADDC ADDC ADDC ADDC ADDC ADDC ADDC ADDC ADDC ADDC ADDC ADDC 0x0 JC AJMP ORL ORL ORL ORL ORL ORL ORL ORL ORL ORL ORL ORL ORL ORL 0x0 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

8 8 Mnemônicos 80 Instructions OpCode Instructions OpCode Instructions OpCode INC A 0x0 ADD A,#data 0x ACALL page0 0x INC iram addr 0x0 ADD A,iram addr 0x ACALL page 0x 0x06 ADD A,@R0 0x6 ACALL page 0x 0x07 ADD A,@R 0x7 ACALL page 0x7 INC R0 0x08 ADD A,R0 0x8 ACALL page 0x9 INC R 0x09 ADD A,R 0x9 ACALL page 0xB INC R 0x0A ADD A,R 0xA ACALL page6 0xD INC R 0x0B ADD A,R 0xB ACALL page7 0xF INC R 0x0C ADD A,R 0xC INC R 0x0D ADD A,R 0xD INC R6 0x0E ADD A,R6 0xE INC R7 0x0F ADD A,R7 0xF INC DPTR 0xA Em arquitetura CISC, um mesmo mnemônico pode ser empregado em várias instruções. Mnemônicos 808 CISC ACI DCX LXI RPE ADC DCX LXI RPO ADC DCX MOV RZ ADD DCX MOV RLC ADD DI MOV RRC ADI EI MVI RST ANA HLT MVI SBB ANA IN NOP SBB ANI INR ORA SBI CALL INR ORA SHLD CC INX ORI SIM CM INX OUT SPHL CMA INX PCHL STA CMC INX POP STAX CMP JMP POP STAX CMP JC POP STC CNC JM POP SUB CNZ JNC PUSH SUB CP JNZ PUSH SUI CPE JP PUSH XCHG CPI JPE PUSH XRA CPO JPO RAL XRA CZ JZ RAR XRI DAA LDA RET XTHL DAD LDAX RC DAD LDAX RIM DAD LHLD RM DAD LXI RNC DCR LXI RNZ DCR LXI RP Mnemônicos 8080 e Z80 adc 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 r adc 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 n add a,(ii+s) cpl ini ld a,(de) outd rr (ii+s) sub r add 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 n add ii,pp dec r jp nn ld r,(ii+s) push rr rrc (ii+s) xor r and (hl) dec ss jp c,nn ld r,n push ii rrc r and (ii+s) dec ii jp m,nn ld r,r res b,(hl) rrca and n di jp nc,nn ld i,a res b,(ii+s) rrd and r djnz jp nz,nn ld r,a res b,r rst s k bit 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,n call nn ex af,af' jp z,nn ld ss,nn ret nc sbc a,r call c,nn ex de,hl jr s ld ii,nn ret nz sbc hl,ss call m,nn exx jr c,s ld sp,hl ret p scf call 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,r call pe,nn im ld (nn),a ldi reti sla (hl) call po,nn im ld (nn),ss ldir retn sla (ii+s) call z,nn in a,(n) ld (nn),hl neg rl (hl) sla r ccf in r,(c) ld (nn),ii nop rl (ii+s) sra (hl) cp (hl) * ld (bc),a or (hl) rl r sra (ii+s) cp (ii+s) inc (hl) ld (de),a or (ii+s) rla sra r ADDWF 00 0 df. ANDWF df. COMF df. DECF df. DECFSZ 00 0 df 6. INCF df 7. INCFSZ 00 df 8. IORWF df 9. MOVF df 0.RLF 00 0 df.rrf df.subwf df.swapf 00 0 df.xorwf df.movwf f 6.CLRF f 7.NOP CLRW Mnemônicos PIC 8-bit baseline BCF 0.BSF.BTFSC.BTFSS.MOVLW.IORLW.ANDLW 6.XORLW 7.CALL 8.GOTO 9.RETLW k CLRWDT OPTION SLEEP TRIS bbbf bbbf bbbf bbbf kkkk kkkk kkkk kkkk kkkk kkkk kkkk kkkk kkkk kkkk kkkk kkkk kkkk kkkk fff 6. ADDWF 00 0 dfff. ANDWF dfff. COMF dfff. DECF dfff. DECFSZ 00 0 dfff 6. INCF dfff 7. INCFSZ 00 dfff 8. IORWF dfff 9. MOVF dfff 0.RLF 00 0 dfff.rrf dfff.subwf dfff.swapf 00 0 dfff.xorwf dfff.movwf fff 6.CLRF fff 7.NOP xx CLRW xxx xxxx Mnemônicos PIC 8-bit mid-range 9.BCF 0.BSF.BTFSC.BTFSS.MOVLW.RETLW.IORLW 6.ANDLW 7.XORLW 8.SUBLW 9.ADDLW 0.CALL.GOTO.CLRWDT.RETFIE.RETURN.SLEEP 0 00bb bfff 0 0bb bfff 0 0bb bfff 0 bb bfff 00xx kkkk kkkk 0xx kkkk kkkk 000 kkkk kkkk 00 kkkkkkkkk 00 kkkk kkkk 0x kkkk kkkk x kkkk kkkk 0 0kkk kkkk kkkk 0 kkk kkkk kkkk ADDWF 00 0 dfff. ANDWF dfff. COMF dfff. DECF dfff. DECFSZ 00 0 dfff 6. INCF dfff 7. INCFSZ 00 dfff 8. IORWF dfff 9. MOVF dfff 0.RLF 00 0 dfff.rrf dfff.subwf dfff.swapf 00 0 dfff.xorwf dfff.movwf fff 6.CLRF fff 7.NOP CLRW xx Mnemônicos PIC 8-bit e.mid-range 9.BCF 0.BSF.BTFSC.BTFSS.MOVLW.RETLW.IORLW 6.ANDLW 7.XORLW 8.SUBLW 9.ADDLW 0.ADDWFC.ASRF.LSLF.LSRF.SUBWFB 0 00bb bfff 0 0bb bfff 0 0bb bfff 0 bb bfff 0000 kkkk kkkk 000 kkkk kkkk 000 kkkk kkkk 00 kkkkkkkkk 00 kkkk kkkk 00 kkkk kkkk 0 kkkk kkkk 0 dfff 0 dfff 00 dfff 00 dfff 0 dfff 8

9 9.CALL 6.GOTO 7.MOVLB 8.MOVLP Mnemônicos PIC 8-bit e.mid-range 0 0kkk kkkk kkkk 0 kkk kkkk kkkk k kkkk 000 kkk kkkk 9.BRA 0.BRW.CALLW.RETFIE.RETURN.CLRWDT.OPTION 6.RESET 7.SLEEP 8.TRIS 9.ADDFSR 0.MOVIW.MOVWI 00k kkkk kkkk fff 000 0nkk kkkk nmm 0nkk nmm kkkk nkk kkkk 9 Quadro comparativo Baseline Mid Range E. M. R. Baseline Mid Range E. M. R. ADDFSR LSLF ADDLW ADDLW LSRF MOVF ADDWF ADDWF ADDWF MOVF MOVF ADDWFC MOVIW MOVLB ANDLW ANDLW ANDLW MOVLP ANDWF ANDWF ANDWF ASRF MOVLW MOVLW MOVLW MOVWF MOVWF MOVWF BCF BCF BCF BRA MOVWI BRW NOP NOP NOP OPTION OPTION BSF BSF BSF RESET BTFSC BTFSC BTFSC RETFIE BTFSS BTFSS BTFSS RETFIE RETLW CALL CALL CALL RETLW RETLW CALLW RETURN RETURN RLF CLRF CLRF CLRF RLF RLF RRF RRF RRF CLRW CLRW CLRW SLEEP SLEEP SLEEP CLRWDT CLRWDT CLRWDT SUBLW SUBLW COMF COMF COMF SUBWF DECF DECF DECF SUBWF SUBWF SUBWFB DECFSZ DECFSZ DECFSZ SWAPF GOTO GOTO GOTO SWAPF SWAPF TRIS TRIS INCF INCF INCF XORLW INCFSZ INCFSZ INCFSZ XORLW XORLW XORWF XORWF XORWF IORLW IORLW IORLW IORWF IORWF IORWF 0 Importação de código Importar um código assembly feito para um chip e usá-lo em outro tipo de chip nem sempre é tarefa fácil. Podem ser necessárias alterações em mnemônicos e em faixas de valores para operandos. Diferenças ocorrem até mesmo dentro da mesma família.. ADDWF. ADDWFC. ANDWF. CLRF. COMF 6. CPFSEQ 7. CPFSGT 8. CPFSLT 9. DECF 0.DECFSZ.DCFSNZ.INCF.INCFSZ.INFSNZ.IORWF Mnemônicos PIC 8-bit PIC8 6.MOVF 7.MOVFF 8.MOVWF 9.MULWF 0.NEGF.RLCF.RLNCF.RRCF.RRNCF.SETF 6.SUBFWB 7.SUBWF 8.SUBWFB 9.SWAPF 0.TSTFSZ.XORWF.BCF.BSF.BTFSC.BTFSS 6.BTG 7.BC 8.BN 9.BNC 0.BNN.BNOV.BNZ.BOV.BRA.BZ 6.CALL 7.CLRWDT 8.DAW 9.GOTO 0.NOP.POP.PUSH.RCALL.RESET.RETFIE 6.RETLW 7.RETURN 8.SLEEP 9.ADDLW 60.ANDLW 6.IORLW 6.LFSR 6.MOVLB 6.MOVLW 6.MULLW 66.RETLW 67.SUBLW 68.XORLW 69.TBLRD* 70.TBLRD*+ 7.TBLRD*- 7.TBLRD+* 7.TBLWT* 7.TBLWT*+ 7.TBLWT*- 76.TBLWT+* Mnemônicos PICF (ex.:0ka00). ADD. ADDC. AND. ASR. BCLR 6. BRA 7. BSET 8. BSW 9. BTG 0.BTSC.BTSS.BTST.BTSTS.CALL.CLR 6.CLRWDT 7.COM 8.CP 9.CP0 0.CPB.CPSEQ.CPSGT.CPSLT.CPSNE.DAW 6.DEC 7.DEC 8.DISI 9.DIV 0.FFL.FFR.GOTO.INC.INC.IOR 6.LNK 7.LSR 8.MOV 9.MUL 0.NEG.NOP.POP.PUSH.PWRSAV.RCALL 6.REPEAT 7.RESET 8.RETFIE 9.RETLW 0.RETURN.RLC.RLNC.RRC.RRNC.SE 6.SETM 7.SL 8.SUB 9.SUBB 60.SUBR 6.SUBBR 6.SWAP 6.TBLRDH 6.TBLRDL 6.TBLWTH 66.TBLWTL 67.ULNK 68.XOR 69.ZE Mnemônicos PICHJ (ex.:gp0/0). ADD. ADDC. AND. ASR. BCLR 6. BRA 7. BSET 8. BSW 9. BTG 0.BTSC.BTSS.BTST.BTSTS.CALL.CLR 6.CLRWDT 7.COM 8.CP 9.CP0 0.CPB.CPSEQ.CPSGT.CPSLT.CPSNE.DAW 6.DEC 7.DEC 8.DISI 9.DIV 0.EXCH.BFCL.FFL.FFR.GOTO.INC 6.INC 7.IOR 8.LNK 9.LSR 0.MOV.MUL.NEG.NOP.POP.PUSH 6.PWRSAV 7.RCALL 8.REPEAT 9.RESET 0.RETFIE.RETLW.RETURN.RLC.RLNC.RRC 6.RRNC 7.SE 8.SETM 9.SL 60.SUB 6.SUBB 6.SUBR 6.SUBBR 6.SWAP 6.TBLRDH 66.TBLRDL 67.TBLWTH 68.TBLWTL 69.ULNK 70.XOR 7.ZE

10 0. ADD. ADDC. AND. ASR. BCLR 6. BRA 7. BSET 8. BSW 9. BTG 0.BTSC.BTSS.BTST.BTSTS.CALL.CLR 6.CLRWDT Mnemônicos PICEP (ex.:6gp0) 7.COM 8.CP 9.CP0 0.CPB.CPSEQ.CPSGT.CPSLT.CPSNE.DAW 6.DEC 7.DEC 8.DISI 9.DIV 0.DIVF.DO.ED.EDAC.EXCH.BFCL 6.FFL 7.FFR 8.GOTO 9.INC 0.INC.IOR.LAC.LNK.LSR.MAC 6.MOV 7.MOVPAG 8.MOVSAC 9.MYP 0.MYP.N.MSC.MUL.NEG.NOP.POP 6.PUSH 7.PWRSAV 8.RCALL 9.REPEAT 60.RESET 6.RETFIE 6.RETLW 6.RETURN 6.RLC 6.RLNC 66.RRC 67.RRNC 68.SAC 69.SE 70.SETM 7.SFTAC 7.SL 7.SUB 7.SUBB 7.SUBR 76.SUBBR 77.SWAP 78.TBLRDH 79.TBLRDL 80.TBLWTH 8.TBLWTL 8.ULNK 8.XOR 8.ZE Mnemônicos PICMX (MIPS) (ex.:6gp0) 6 ADD Add (with overflow) ADDI Add immediate (with overflow) ADDIU Add immediate unsigned (no overflow) ADDU Add unsigned (no overflow) AND Bitwise and ANDI Bitwise and immediate BEQ Branch on equal BGEZ Branch on greater than or equal to zero BGEZA Branch on greater than or equal to zero and L link BGTZ Branch on greater than zero BLEZ Branch on less than or equal to zero BLTZ Branch on less than zero BLTZA Branch on less than zero and link L BNE Branch on not equal DIV Divide DIVU Divide unsigned J Jump JAL Jump and link JR Jump register LB Load byte LUI Load upper immediate LW Load word MFHI Move from HI MFLO Move from LO MULT Multiply MULTU Multiply unsigned NOOP no operation OR Bitwise or ORI Bitwise or immediate SB Store byte SLL Shift left logical SLLV Shift left logical variable SLT Set on less than (signed) SLTI Set on less than immediate (signed) SLTIU Set on less than immediate unsigned SLTU Set on less than unsigned SRA Shift right arithmetic SRL Shift right logical SRLV Shift right logical variable SUB Subtract SUBU Subtract unsigned SW Store word SYSCA System call LL XOR Bitwise exclusive or XORI Bitwise exclusive or immediate Mnemônicos MIPS6 7 8 f Register File Adress 00h até 7Fh 7 bits W Working Register / Acumulator 00h até FFh 8 bits b Bit Address 0h até 7h bits k Constant, 8 bits 00h até FFh 8 bits x Don t Care (bit não usado) d Destination 0h até h bit PC Program Counter ( bits) 0000h até FFFh bits PIC6F877 O MPLAB monta os bits não usados com zero. Um opcode com bits não usados em um não é apresentado na coluna disassembly. Siglas 9 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 registradores localizados no file registers. Sempre um dos argumentos da ULA é o acumulador. Em outros P s, o registrador W é chamado de A. Em processadores de 6 bits, o acumulador é dividido em AH e AL. 60

11 Siglas Categorias O bit address seleciona um bit em uma palavra de 8 bits, pois a MCU é de 8 bits. O bit address possui bits para endereçar as 8 posições. Os dois bits mais significativos do opcode são usados na identificação da família da instrução. OPCODE<:>. Cada família possui uma estrutura para o opcode. A constante é um número de 8 bits, proveniente do barramento de dados, de 8 bits. Sobre Bytes. Sobre Bits. Literais De Controle. 6 6 Família de instruções sobre bytes 0 ANDWF 0 IORWF 0 XORWF 0 ADDWF 0 SUBWF 06 COMF 07 INCF 08 DECF 09 INCFSZ 0 DECFSZ RLF RRF SWAPF MOVF CLRF 6 CLRW 7 MOVWF 8 NOP W: Work register (accumulator) F: File register OPCODE<:> = 00 6 Bit Bit Bit 08 Bit 09 Bit 0 Bit Seleção das instruções sobre bytes Bit 07 DEC 6 CS d SUBWF DECF IORWF ANDWF XORWF ADDWF MOVF COMF INCF DECFSZ RRF RLF SWAPF INCFSZ NOP MOVWF CLRW CLRF 6 Classificação Tipo Instrução Tipo 0 SUB WF Aritmética 0 DEC F Aritmética 0 IOR WF Lógica 0 AND WF Lógica 0 XOR WF Lógica 06 ADD WF Aritmética 07 MOV F Movimentação 08 COM F Lógica 09 INC F Aritmética 0 DEC FSZ Aritmética RR F Lógica RL F Lógica SWAP F Lógica INC FSZ Aritmética NOP - 6 MOV WF Movimentação 7 CLR W Lógica/Aritmética 8 CLR F Lógica/Aritmética 6 SUBWF DECF IORWF ANDWF XORWF ADDWF MOVF COMF INCF DECFSZ RRF RLF SWAPF INCFSZ Estrutura da instrução sobre bytes Tipo seleção d file bits para seleção da operação, OPCODE<: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 = : O resultado é enviado para file. 66

12 NOP MOVWF Estrutura da instrução sobre bytes tipo CLRW CLRF 0 0 seleção file bits para seleção da operação, OPCODE<:7>. f: Endereço do registrador que contém um dos argumentos, OPCODE<6:0>. 67 Sintaxe para o tipo f,d 0 ANDWF f,d 0 IORWF f,d 0 XORWF f,d 0 ADDWF f,d 0 SUBWF f,d 06 COMF f,d 07 INCF f,d 08 DECF f,d 09 INCFSZ f,d 0 DECFSZ f,d RLF f,d RRF f,d SWAPF f,d MOVF f,d 68 Sintaxe para o tipo Códigos para o tipo CLRF f CLRW MOVWF f NOP Instrução Nibble Nibble Nibble Nibble 0 0 SUB WF 00b 000b (0d) dfff 0 DEC F 00b 00b (0d) dfff 0 IOR WF 00b 000b (0d) dfff 0 AND WF 00b 00b (0d) dfff 0 XOR WF 00b 00b (06d) dfff 06 ADD WF 00b 0b (07d) dfff 07 MOV F 00b 000b (08d) dfff 08 COM F 00b 00b (09d) dfff 09 INC F 00b 00b (0d) dfff 0 DEC FSZ 00b 0b (d) dfff RR F 00b 00b (d) dfff RL F 00b 0b (d) dfff SWAP F 00b 0b (d) dfff INC FSZ 00b b (d) dfff 69 Família Seleção da função 7-bit file address 70 Códigos para o tipo Instrução Nibble Nibble Nibble Nibble 0 0 NOP 00b 0000b (00d) 0xx MOV WF 00b 0000b (00d) fff 0 CLR W 00b 000b (0d) 0xxx xxxx 0 CLR F 00b 000b (0d) fff Família Seleção da Bit 7 função Onde existe irrelevância, somente a substituição total por zero gera código na coluna disassembly do MPLAB. Na programação pelo MPASM, todas as irrelevâncias valem zero. 7 Seleção das funções do tipo Bit 07 Bit 08 Bit 09 Bit 0 Bit Bit Bit DEC CS NOP MOVWF CLRW CLRF 7

13 Operações de dois operandos com bytes AND WF IOR WF XOR WF ADD WF SUB WF 0 f 7 (7 bits) Se d=0: W = f op W Se d=: f = f op W 7 Operações de um operando com bytes COM F INC F DEC F INC FSZ DEC FSZ 6 RL F 7 RR F 8 SWAP F 9 MOV F 0 f 7 (7 bits) Se d=0: W = op f Se d=: f = op f 7 Operações diferentes com bytes Operações com bytes sem operandos CLR W (sem operandos) CLR F (um operando) 0 f 7 (7 bits) Se bit7=0: CLRW W = op W Se bit7=: CLRF f = op f CLRW NOP As duas instruções clear não são agrupadas e identificadas pelo destiny. Isto se deve ao fato das suas sintaxes serem diferentes Família de instruções sobre bytes sobre bits Estrutura das instruções sobre bits BCF BSF BTFSC BTFSS F: File register OPCODE<:> = 0 77 bits para seleção da operação, OPCODE<:0>. 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> seleção bit file 78

14 Código das instruções sobre bits Instrução Nibble Nibble Nibble Nibble 0 0 BC F 0 00bb bfff 0 BS F 0 0bb bfff 0 BT FSC 0 0bb bfff 0 BT FSS 0 bb bfff Família 7-bit file address Seleção do bit Bit 0 Bit Bit Bit Seleção das instruções sobre bits DEC CS BCF BSF BTFSC BTFSS Seleção da função Sintaxe das instruções sobre bits BCF f,b BSF f,b BTFSC f,b BTFSS f,b Família de instruções sobre bytes sobre literais ADDLW ANDLW IORLW MOVLW SUBLW 6 XORLW 7 RETLW 8 W: Work register (accumulator) L: Literal ou Constante ou Dado OPCODE<:> = 8 Estrutura das instruções sobre literais Código das instruções sobre literais seleção k (literal) bits para seleção da operação, OPCODE<:8>. k: Número de 8 bits. k representa o número (literal) que será operado com W. Instrução Nibble Nibble Nibble Nibble 0 0 MOV LW 00xx kkkk kkkk 0 RET LW 0xx kkkk kkkk 0 IOR LW 000 kkkk kkkk 0 AND LW 00 kkkk kkkk 0 XOR LW 00 kkkk kkkk - 0 xxxx xxxx 06 SUB LW 0x kkkk kkkk 07 ADD LW x kkkk kkkk Família 8-bit Constant Seleção da função 8 8

15 Classificação das instruções sobre literais AND LW IOR LW XOR LW ADD LW SUB LW 6 MOV LW 7 RET LW Lógicas Aritméticas Movimentação A literal (L) é operada com o acumulador (W). O resultado é salvo no acumulador (W). Bit Bit Seleção das instruções sobre literais Bit 08 Bit 09 Bit 0 Bit DEC 6 CS IOR AND XOR SUBLW ADDLW MOVLW RETLW Lógicas Movimentação Aritméticas 8 86 Sintaxe das instruções sobre literais Sobre bytes e sobre literais ANDLW k IORLW k XORLW k ADDLW k SUBLW k 6 MOVLW k 7 RETLW k 0 k W = k op W File Família 00 AND WF IOR WF XOR WF ADD WF SUB WF MOV WF Literal Família AND LW IOR LW XOR LW ADD LW SUB LW MOV LW RET LW Lógicas Aritméticas Movimentação Família de instruções de controle CLRWDT SLEEP RETURN RETFIE Código das instruções de controle _0000_0 seleção Instrução Nibble Nibble Nibble Nibble 0 0 RETURN RETFIE SLEEP CLRWDT Os bits de identificação desta família também são 00. OPCODE<:> = 00 Família Apesar de parecidos, estes códigos não são confundidos com NOP e MOVWF. Instrução Nibble Nibble Nibble Nibble NOP xx MOVWF fff 90

16 6 Família de instruções de desvio Estrutura das instruções de desvio GOTO CALL sel k (literal) bit para seleção da operação, OPCODE<>. k: Número de bits OPCODE<0: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 bits de endereço. 9 9 De desvio Nibble Instrução Nibble Nibble Nibble Nibble 0 0 CALL 0 0kkk kkkk kkkk 0 GOTO 0 kkk kkkk kkkk Seleção Família -bit Constant k representa o endereço dentro da página da flash. k contém os bits do endereço, OPCODE<0:0>. k seleciona alinha na página da flash. Cada página possui bits de endereço. O terceiro nibble da instrução identifica a família da instrução. OPCODE<:>. 00b: Sobre byte (tipos e ) 00b: De controle 0b: Sobre bit 0b: De desvio b: Sobre literal Padrões de estrutura de opcode seleção 0 0 seleção d file address file address sel. bit addr. file address seleção literal seleção Tipo Tipo Sobre bit Sobre literal De controle Sobre byte Padrões de estrutura de opcode seleção d file address seleção file address sel. bit addr. file address seleção literal seleção CLRWDT SLEEP RETURN RETFIE BCF BSF BTFSC BTFSS NOP MOVWF CLRW CLRF ANDLW IORLW XORLW ADDLW SUBLW MOVLW RETLW SUBWF DECF IORWF ANDWF XORWF ADDWF MOVF COMF INCF DECFSZ RRF RLF SWAPF INCFSZ sel. program address De desvio sel. program address GOTO CALL 96

17 Padrões de estrutura de opcode Seleção das cinco famílias seleção 0 0 seleção d file address sel. bit addr. file address file address seleção literal Dois argumentos Um argumento Bit Bit DEC Sobre byte / De controle Sobre bit De desvio Sobre literal sel. program address seleção Sem argumento Instruções de dois ciclos T CY Instruções não usadas BTFSC BTFSS DECFSZ INCFSZ CALL 6 GOTO 7 RETURN 8 RETLW 9 RETFIE Condicional Desvio Instrução Nibble Nibble Nibble Nibble 0 0 OPTION TRIS fff Não há proteção contra opcode inválido no chip. Um opcode inválido leva a uma ação inesperada Bits de estado Bits de estado Bits de estado (SR) afetados AND - - Z IOR - - Z XOR - - Z ADD C DC Z SUB C DC Z CLRW - - Z CLRF - - Z COMF - - Z INCF - - Z DECF - - Z RLF C - Z RRF C - Z SWAPF - - Z MOVF - - Z 0 Bits de estado (SR) afetados ADD C DC Z SUB C DC Z RLF C - Z RRF C - Z Nas instruções acima, é preciso considerar que 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 9 bits. 0 7

18 8 Instrução FFFh Quando a program memoy está apagada, todos os seus bits valem. Todas os 8k opcodes valem FFFh. Instrução Nibble Nibble Nibble Nibble 0 07 ADD LW x kkkk kkkk kkkkkkkk = b = FFh x = Como x=, o código não aparece na coluna disassembly. ADDLW ffh Esta instrução equivale a SUBLW 0h O acumulador é decrementado uma unidade. 0 0 NOP Sintaxe: NOP No Operation. Não afeta os bits de estado. O NOP é usado, principalmente, em situações nas quais se deseja que a execução de um programa leve uma determinada quantidade de tempo. O uso do NOP permite aumentar o tempo de execução do programa. 0 Rotina Programa principal Programa principal NOP Exemplo de aplicação Teste condicional Rotina Mais curta do que Rotina NOP s O programa leva o mesmo tempo de execução nas duas possibilidades. 06 ANDWF e ANDLW Sintaxe: ANDWF f,d Sintaxe: ANDLW k IORWF e IORLW Sintaxe: IORWF f,d Sintaxe: IORLW k ANDWF d=0: W = f AND W d=: f = f AND W IORWF d=0: W = f IOR W d=: f = f IOR W ANDLW W = k AND W IORLW W = k IOR W E lógico. Afetam o bit de estado Z. 07 OU lógico. Afetam o bit de estado Z. 08

19 XORWF e XORLW ADDWF e ADDLW Sintaxe: XORWF f,d Sintaxe: XORLW k Sintaxe: ADDWF f,d Sintaxe: ADDLW k XORWF ADDWF d=0: W = f XOR W d=: f = f XOR W d=0: W = f ADD W d=: f = f ADD W XORLW ADDLW W = k XOR W W = k ADD W OU exclusivo lógico. Afetam o bit de estado Z. 09 Adição aritmética. Afetam os bits de estado Z, C e DC. 0 SUBWF e SUBLW ADD e SUB Sintaxe: SUBWF f,d Sintaxe: SUBLW k SUBWF d=0: W = f SUB W (W=f W ) d=: f = f SUB W (f=f W ) SUBLW W = k SUB W (W=l W) A subtração não é comutativa. L é o minuendo. W é o subtraendo. 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 FFh). EmADD, 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, sendo para positivo e 0 para negativo. Em subtração negativa, a resposta de 8 bits representa o resultado adicionado a FFh. Subtração aritmética. Afetam os bits de estado Z, C e DC. CLRW e CLRF COMF Sintaxe: CLRW Sintaxe: CLRF f Sintaxe: COMF f,d CLRW W = 00h d=0: W = / f d=: f = / f Z = CLRF f = 00h O conteúdo de f é complementado bit a bit. Equivale a fazer 0xFF f Z = CLRW: CLRF: Apaga o conteúdo de W. Apaga o conteúdo de f. Afetam o bit de estado Z. Complementa o conteúdo de f. Afeta o bit de estado Z. 9

20 0 INCF: DECF: INCF e DECF Sintaxe: INCF f,d Sintaxe: DECF f,d INCF d=0: W = f + d=: f = f + DECF d=0: W = f d=: f = f Incrementa o conteúdo de f. Decrementa o conteúdo de f. Afetam o bit de estado Z. 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. Valor FFh FEh 0h 00h INCF Z= Valor FFh FEh 0h 00h DECF Z= 6 INCF e DECF O bit Z pode ser usado para incrementar ou 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 =, o high byte sofre um incremento por meio da adição. 7 RLF: RRF: RLF e RRF Sintaxe: RLF f,d Sintaxe: RRF f,d RLF d=0: W = RL f d=: f = RL f RRF d=0: W = RR f d=: f = RR f Gira o conteúdo de f para a esquerda. Gira o conteúdo de f para a direita. Afetam o bit de estado C. O carry (C) está incluído (9 bits). 8 RLF C=0 Configurando, C=0, a instrução RLF corresponde à multiplicação de um número inteiro de 8 bits por. É possível multiplicar números na faixa de 0 a (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 6 (00h). O máximo operando que não gera overflow é 7 (7Fh), que, multiplicado por, resulta em (0FEh). O mínimo operando que gera overflow é 8 (80h), que, multiplicado por, resulta em 6 (00h). 9 RLF C= Configurando, C=, a instrução RLF corresponde à multiplicação de um número de 9 bits (fracionário) por. O bit C indica a ocorrência do dígito fracionário (0,8h). O valor resultante do bit C indica a ocorrência de um overflow, tal como no caso anterior. O máximo operando que não gera overflow é 7, (7F,8h), que, multiplicado por, resulta em (0FFh). O mínimo operando que gera overflow é 8, (80,8h), que, multiplicado por, resulta em 7 (0h). 0

21 RRF C=0 RRF C= Configurando, C=0, a instrução RRF corresponde à divisão de um número inteiro de 8 bits por. É possível dividir números na faixa de 0 a (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). Configurando, C=, a instrução RRF corresponde à divisão de um número inteiro de 9 bits por. É possível dividir números na faixa de 0 a (000h a FFh). O valor resultante do bit C indica a ocorrência de um bit fracionário se o operando era ímpar (0,8h), tal como no caso anterior. Exemplo Multiplicação por dois sem estouro Exemplo Divisão inteira por dois C=0 file = h file = 000_00b Aplicando RLF: file = 000_00b file = 86h C=0 C=0 file = 9h file = 00000b Aplicando RRF: file = 00000b file = 9h C=0 O programa interpreta C=0 no início como um número inteiro e menor do que 00h. O programa interpreta C=0 no final como um resultado inteiro e menor do que 00h. O programa interpreta C=0 no início como um número inteiro e menor do que 00h. O programa interpreta C=0 no final como um resultado inteiro e menor do que 00h. C=0 file = 9h file = 0000b Aplicando RLF: file = 00000b file = 6h C= Valor: 00000b Valor: 00h + 6h = 6h Exemplo Multiplicação por dois com estouro O programa interpreta C=0 no início como um número inteiro e menor do que 00h. O programa interpreta C= no final como um resultado inteiro e maior do que FFh (estouro). Em RLF, caso C mude de 0 para, um número inteiro foi multiplicado e o resultado é maior do que FFh. C= no final tem a função de somar 00h. C=0 file = 9h file = 0000b Exemplo Divisão fracionária por dois Aplicando RRF: file = 00000b file = 9h C= Valor: 00000,b Valor: 9h + 0,8h = 9,8h O programa interpreta C=0 no início como um número inteiro e menor do que 00h. O programa interpreta C= no final como um resultado fracionário e menor do que 00h. Em RRF, caso C mude de 0 para, um número inteiro foi dividido e o resultado é fracionário. C= no final tem a função de somar 0,8h. 6

22 Exemplo Multiplicação de um número fracionário menor do que FFh C= file = 6h = 00000b Valor: 00000,b Valor: 0,8h + 6h = 6,8h Aplicando RLF: Valor: 0000,0b file = 0000b = Dh C=0 O programa interpreta C= no início como um número fracionário e menor do que 00h. O programa interpreta C=0 no final como um resultado inteiro e menor do que 00h. C= file = 6h = 00000b Valor: 00000b Valor: 00h + 6h = 6h Aplicando RRF: Valor: 00000b file = 0000b = 9h C=0 Exemplo 6 Divisão inteira de um número inteiro maior do que FFh O programa interpreta C= no início como um número inteiro e maior do que FFh. O programa interpreta C=0 no final como um resultado inteiro e menor do que 00h. Em RLF, caso C mude de para 0, um número fracionário foi multiplicado e o resultado é inteiro. C= no início tem a função de somar 0,8h. 7 Em RRF, caso C mude de para 0, um número maior do que FFh foi dividido e o resultado é inteiro. C= no início tem a função de somar 00h. 8 file = 9h = 0000b C= (função de somar 0,8h) Valor: 9h + 0,8h = 9,8h Valor: 0000,b Aplicando RLF: Valor: 0000b file = 0000b = 7h C= (função de somar 00h) Valor: 00h + 7h = 7h Exemplo 7 9,8h h 0,8h h h 9h h 6 h h 6 h 7 h O programa interpreta C= no início como um número fracionário e menor do que 00h. O programa interpreta C= no final como um resultado inteiro e maior do que FFh. Em RLF, se C valia um e permaneceu em um, é porque um número fracionário foi multiplicado e o resultado é inteiro e maior do que FFh. 9 file = 7h = 0000b. C= (função de somar 00h) Valor: 00h + 7h = 7h Valor: 0000b Aplicando RRF: Valor: 0000,b file = 0000b = 9h C= (função de somar 0,8h) Valor: 9h + 0,8h = 9,8h Exemplo 8 7 h h 0h h 90h 6h h h h h 0,8h 90h h 0,8h 9,8h O programa interpreta C= no início como um resultado inteiro e maior do que FFh. O programa interpreta C= no final como um número fracionário e menor do que 00h. Em RRF, se C valia um e permaneceu em um, é porque um número inteiro e maior do que FFh foi dividido e o resultado é fracionário. 0 Exemplos Exemplo Operação C antes C depois RLF RRF 0 0 RLF RRF 0 RLF 6 RRF 0 7 RLF 8 RRF SWAPF Sintaxe: SWAPF f,d d=0: W = SWAP f d=: f = SWAP f Permuta os nibbles do conteúdo de f. Afeta o bit de estado Z.

23 SWAPF Útil para fazer uma comunicação paralela de quatro bits sobre palavras de oito bits. Isto permite economia no hardware de comunicação. Primeiramnte, 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. MOVF Sintaxe: MOVF f,d d=0: W = f d=: f = f A opção f = f é usada, por exemplo, para verificar se o conteúdo de f é zero. Se for zero, Z=. Copia o conteúdo de f. Afeta o bit de estado Z. 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,w = MOVFW. 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. MOVWF e MOVLW Sintaxe: MOVWF f Sintaxe: MOVLW k MOVWF W F f = W MOVLW L W W = k 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. 6 MOVFW, MOFWF e MOVLW MOVLW BCF e BSF Sintaxe: BCF f,b Sintaxe: BSF f,b MOVWF MOVFW 7 0d f 7d 0h f 7Fh 0d b 7d 000b b b 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. 8

24 BTFSC e BTFSS Sintaxe: BTFSC f,b Sintaxe: BTFSS f,b 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. 9 INCFSZ e DECFSZ Sintaxe: INCFSZ f,d Sintaxe: DECFSZ f,d INCFSZ d=0: W = f + d=: f = f + DECFSZ d=0: W = f d=: f = f Instruções condicionais. Realizam INC ou DEC. Analisa o resultado. Se o resultado é zero, pula a próxima instrução. INCFSZ: Increment f, Skip if Zero. DECFSZ: Decrement f, Skip if Zero. Não afetam os bits de estado. 0 INCFSZ e DECFSZ Sobre BTFSC, BTFSS, 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. 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 T CY. Se não houver skip: PC = PC+. Se houver skip: PC = PC+. CLRWDT Sintaxe: CLRWDT SLEEP Sintaxe: SLEEP 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 temporiador analógico WDT. Este comando não é necessário se o WDT está desabilitado. Este assunto será apresentado mais adiante. 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 de dispositivos processados a disponibilizar modos de operação em economia de energia elétrica. Este assunto será apresentado mais adiante.

25 RETURN RETLW Sintaxe: RETURN Sintaxe: RETLW k 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. 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. 6 RETFIE Sintaxe: RETFIE Não usa argumentos. Não afeta os bits de estado. Return From Interrup. Retornar da sub-rotina. Útil quandoa sub-rotina é chamada pela interrupção. Este assunto será apresentado mais adiante. GOTO e CALL Sintaxe: GOTO k Sintaxe: CALL k Nas outras instruções, k usa 8 bits (SRAM). Em GOTO e em CALL, k usa bits (flash). 0d k 07d 000h k 7FFh k indica um endereço na página da flash. k indica o endereço da sub-rotina. 7 Não afetam os bits de estado. 8 GOTO e CALL Tempo 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. Instruction Cycle: Tempo para executar uma instrução. Clock Input: Entrada de relógio(externo) Instruction Cycle T CY = 00ns (MHz) (máximo) Clock Input = T OSC = 0ns (0MHz) (máximo) 00ns = 0ns ciclo de instrução: períodos de relógio. O oscilador externo é obtido por meio de cristal ou RC. 9 0

26 6 Tempo Tempo Q : Decodificação da instrução. Q : Leitura do dado da instrução. Q : Processamento da instrução. Q : Escrita do dado resultante. Instrução Instrução Instrução A sensibilidade é na borda de descida. Exemplo para instruções T CY. Q : O mnemônico é identificado por meio de circuitos decodificadores baseados nas tabelas de montagem. Todas as instruções passam pela etapa de decodificação. As etapas Q, Q e Q nem sempre são usadas. Quando uma etapa não é usada, nenhuma atividade é realizada. Tempo Ciclos de relógio Instrução Q Q Q Q Todas as instruções usam um ciclo (T CY ). Exceções: Teste condicional. Alteração no PC através de uma instrução. Nas exceções, a instrução usa ciclos. T CY = 00ns (mínimo). 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 Instrução Q Q Q Q BTFSC BTFSS DECFSZ INCFSZ CALL 6 GOTO 7 RETURN 8 RETLW 9 RETFIE 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 Instrução Q Q Q Q BCF Decode Lê o file BC Grava f BSF Decode Lê o file BS Grava f Ciclos de relógio Ciclos de relógio Instrução Q Q Q Q CLRW Decode Nada Nada Grava W CLRF Decode Nada Nada Grava f CLRWDT Decode Nada Nada Reinicia MOVLW Decode Lê o literal Nada Grava W MOVWF Decode Lê W Nada Grava f MOVF Decode Lê o file Nada Grava d SLEEP Decode Nada Nada SLEEP NOP Decode Nada Nada Nada Os ciclos onde nada é realizado poderiam ser eliminados para ganhar tempo. Isso não é feito a fim de que se mantenha constante a frequência de instruções (f CY ), o que simplifica o funcionamento da MCU. Instrução Q Q Q Q Se houver skip, o PC é escrito nesta etapa. Q Q Q Q BTFSC Decode Lê o file TEST Nada BTFSS Decode Lê o file TEST Nada DECFSZ Decode Lê o file INC/TEST Grava d DECFSZ Decode Lê o file DEC/TEST Grava d Provavelmente o PCH e o PCL são gravados em Q e em Q do segundo T CY. 6

27 Ciclos de relógio Ciclos de relógio Instrução Q Q Q Q PC é escrito nesta etapa. Q Q Q Q CALL Decode Lê o k Nada Nada GOTO Decode Lê o k Nada Nada Provavelmente o push do CALL é realizado nos Q e Q do segundo T CY (visto mais adiante). Provavelmente o PCH e o PCL são gravados nos Q e Q do segundo T CY. Como k supera 8 bits, provavelmente o PC<0:8> é lido no Q, junto com os bits a (suposição). Instrução Q Q Q Q PC é escrito nesta etapa. Q Q Q Q RETURN Decode Nada Nada Nada RETLW Decode Lê o literal Nada Grava W RETFIE Decode Nada Nada GIE = 0 Provavelmente o PCH e o PCL são gravados nos Q e Q do segundo T CY. Q 6-bit decode Q 8-bit data sel k (literal) 7 8 Ciclos de relógio Ciclos de relógio Apenas dois ciclos de relógio são necessários são usados na gravação do PC nas instruções T CY. O uso de oito ciclos se deve à manutenção da sincronia, a preservação do ciclo de instruções. No caso das instruções condicionais, existe a possibilidade de que o skip seja sempre realizado. Condição satisfeita: PC = PC+. Condição nãosatisfeita: PC = PC+. Nos desvios incondicionais, não há esclarecimentos, no data sheet, sobre o que é executado em Q Definição Configuration Bits Selecionam as configurações da PIC. Palavra de configuração (configuration word): bits. Programação em lógica negativa. Bit não programado (ativado): 0 Bit programado (desativado): A palavra de configuração é gravada na flash. Endereço: 007h. Esta posição não pertence à program memory (até FFFh). Esta posição somente pode ser acessada na programação

28 8 Formação da palavra Campos A configuração padrão é todos os bits desabilitados. h Essa configuração é gravada ao realizar o full erase..fosc Oscillator Selection bits..wdte Watchdog Timer Enable bit..pwrte Power-up Timer Enable bit..cp FLASH Program Memory Code Protection bits..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. 6 6 Configuração da proteção da FLASH Campo: CP FLASH Program Memory Code Protection bits. Bits de proteção da FLASH. Bits,,,. Mnemônicos: CP ( e ) e CP0 ( e ) (Code Protection). Para que haja proteção os bits de mesmo nome devem ser iguais. CP CP0 Proteção Palavras Explicação Sem 0 Nada 0 F00h a FFFh 6 PCH = b 0 000h a FFFh k ª metade h a FFFh 8k Tudo 6 Configuração da proteção da FLASH As opções (nada) e 00 (tudo) são válidas para toda a família mid-range. As opções 0 e dependem do modelo, pois o tamanho da program memory pode variar, sendo 8kwords na PIC6F877. CP CP0 Palavras Explicação 0 Nada 0 0 8k Tudo 66 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, o que, também, impede a cópia do programa. A limpeza total do chip (full-erase) reinicia os bits de proteção, os mesmos precisam ser regravados. Foram descobertas formas de burlar esta proteção em alguns modelos mais antigos de PIC, não há garantias plenas de que o programa esteja totalmente protegido. Configuração da proteção da FLASH A possibilidade de proteção parcial é útil quando se deseja que parte do programa seja configurável pelo usuário. Outra possibilidade é a comercialização de uma sub-rotina, que fica na parte protegida, permitindo ao usuário criar seu próprio programa usando a sub-rotina adquirida

29 Configuração da proteção da EEPROM Configuração da proteção da EEPROM 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 é apagandotoda a EEPROM. A limpeza total do chip (full-erase) reinicia os bits de proteção. Campo: CPD. Também chamado de PD em outros modelos. Data EE Memory Code Protection. Bit 8. : EEPROM sem proteção. 0: EEPROM com proteção. Independente de CP e CP0. Este assunto será apresentado mais adiante Oscilador Bits e 0. Mnemônicos: FOSC e FOSC0. Outros modelos também possuem o bit FOSC0. Este assunto será apresentado mais adiante. FOSC FOSC0 Oscilador Significado RC Resistor / Capacitor 0 HS High Speed Crystal / Resonator 0 XT Crystal / Resonator 0 0 LP Low Power Crystal ICSP 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. 7 7 Módulo gravador de PIC ICSP É o contrário de ICSP, a PIC é gravada fora do ambiente de operação. Ideal quando já se sabe que o programa funciona e não se deseja realizar alterações. Ideal quando se deseja gravar várias unidades. Há opções para gravação em lotes. Campo: WRT. FLASH Program Memory Write Enable. Bit 9. : Desabilitado Impede o uso do ICSP. 0: Habilitado Permiteo uso do ICSP. Não impede a leitura das memórias internas

30 ICSP ICSP 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. : Habilitado: Dispensa tensão mais alta na programação. A desabilitação do LVP dá mais segurança à PIC, pois jamais recebe tensão mais elevada em operação normal. A desabilitação do LVP requer hardware mais sofisticado quando se usa ICSP, pois requer tensão superior para gravar o chip. A habilitação do LVP aumenta a chance da PIC ser gravada acidentalmente. A habilitação do LVP simplifica o hardware quando se usa ICSP, pois a tensão de alimentação é sempre a mesma DEBUG DEBUG Campo: DEBUG. In-Circuit Debugger Mode. Permite a depuração pelo MPLAB. Bit. : Desabilitado. 0: Habilitado. Quando habilitado, usa os pinos: PGC Programming Clock Pino 9 DIP. PGD Programming Data Pino 0 DIP. Usado com o MPLAB ICD Outros bits Módulo grav. de PIC com ICSP /PICkit 6: BODEN Brown-out Reset Enable bit. : /PWRTE Power-up Timer Enable bit. : WDTE Watchdog Timer Enable bit. Serão apresentados mais adiante

31 Módulo grav. de PIC com ICSP /PICkit Módulo gravador de MCU Atmel LITERATURA Módulo gravador de memórias LITERATURA LITERATURA 6 LITERATURA MPLAB Microchip MPASM MPLINK MPLIB User's Guide. MPASM user's guide with MPLINK and MPLIB. MPLAB IDE User's Guide. PIC6F87X Data Sheet. PICmicro Mid-Range MCU Family Reference Manual. 8 86

PIC16F628a. Pinagem do PIC16F628a:

PIC16F628a. Pinagem do PIC16F628a: PIC16F628a O PIC16F628a é um microcontrolador fabricado pela Microchip Technology (www.microchip.com), com as seguintes características: - composto de 18 pinos; - possui somente 35 instruções no seu microcódigo;

Leia mais

DOUGLAS DAL POZZO DIEGO VITTI

DOUGLAS DAL POZZO DIEGO VITTI DOUGLAS DAL POO DIEGO VITTI O que são MicroControladores Microcontralor é um componente cujo núcleo possui os mesmos blocos funcionais de um microprocessador. No entanto, sua aplicação é um pouco mais

Leia mais

Curso PIC 1 Desbravando o PIC. Eng. Diego Camilo Fernandes Labtools Mosaico Didactic Division

Curso PIC 1 Desbravando o PIC. Eng. Diego Camilo Fernandes Labtools Mosaico Didactic Division Curso PIC 1 Desbravando o PIC Eng. Diego Camilo Fernandes Labtools Mosaico Didactic Division O que fazemos... Desenvolvimento de projetos (hardware e software); Consultoria em engenharia eletrônica e

Leia mais

Sistemas Microprocessados

Sistemas Microprocessados Sistemas Microprocessados satoutfpredubr http://pessoal.utfpr.edu.br/sato/ Assembly do ATmega8 satoutfpredubr Sobre o material Essas transparências foram baseadas no manual

Leia mais

Parte 1 IDE DEFINIÇÃO 1. DEFINIÇÃO 2. ASSEMBLY 3. INSTRUÇÕES PIC16F CONJUNTO DE INSTRUÇÕES 5. BITS DE CONFIGURAÇÃO 6. LITERATURA.

Parte 1 IDE DEFINIÇÃO 1. DEFINIÇÃO 2. ASSEMBLY 3. INSTRUÇÕES PIC16F CONJUNTO DE INSTRUÇÕES 5. BITS DE CONFIGURAÇÃO 6. LITERATURA. Parte IDE. DEFINIÇÃO.... 6. LITERATURA DEFINIÇÃO DEFINIÇÃO Componentes DEFINIÇÃO Editor de texto para entrada do código. Debugging do código. Simulador de dispositivo. Assembler (montador). Compilador.

Leia mais

SEMINÁRIO ASSEMBLY: Arquitetura PIC

SEMINÁRIO ASSEMBLY: Arquitetura PIC UNIVERSIDADE FEDERAL DE SANTA CATARINA CENTRO TECNOLÓGICO DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA Curso de Ciências da Computação SEMINÁRIO ASSEMBLY: Arquitetura PIC DOUGLAS DAL POZZO DIEGO VITTI Florianópolis

Leia mais

Introdução aos Microcontroladores PIC

Introdução aos Microcontroladores PIC Introdução aos Microcontroladores PIC 1ª parte João M. P. Cardoso Universidade do Algarve Microcontroladores PIC Empresa: Microchip Technology Inc. Várias famílias PIC12XX, PIC16XX, PIC17XX, PIC18XX Linha

Leia mais

Laboratório de Sistemas Processadores e Periféricos Lista de comandos de Assembly

Laboratório de Sistemas Processadores e Periféricos Lista de comandos de Assembly Laboratório de Sistemas Processadores e Periféricos Lista de comandos de Assembly Gustavo G. Parma Lista dos comandos assembly que serão utilizados ao longo das práticas. 1 Comandos 1. ADD destino, fonte

Leia mais

Arquitetura de Computadores. Prof. João Bosco Jr.

Arquitetura de Computadores. Prof. João Bosco Jr. Arquitetura de Computadores Prof. João Bosco Jr. Aula 4 (nivel ISA Arquitetura PIC) Características do Controlador 16F628A 18 Pinos Até 20 Mhz (5M instruções por segundo) PortA e PortB 10 Interrupções

Leia mais

Arquitetura de Computadores

Arquitetura de Computadores Universidade Federal de Santa Catarina Centro Tecnológico Curso de Pós-Graduação em Ciência da Computação Aula 2 Arquitetura do Processador MIPS: características gerais, registradores, formatos de instrução,

Leia mais

Programação Daniel Corteletti Aula 3 Parte III Página 1/7

Programação Daniel Corteletti Aula 3 Parte III Página 1/7 Programação Daniel Corteletti Aula 3 Parte III Página /7 LINGUAGEM DE PROGRAMAÇÃO - ASSEMLY - PARTE I Assembly - o que é "Assembly" significa montagem. "Assembler" significa montador. Montagem é o ato

Leia mais

CONJUNTO DE INSTRUÇÕES

CONJUNTO DE INSTRUÇÕES CONJUNTO DE INSTRUÇÕES Rn - Registrador R0 R7 do banco de registradores selecionado. direto - 8-bits de endereço da posição da RAM de dados Podem ser referentes tanto à RAM interna (0 7F) como ao espaço

Leia mais

PIC. PeripheralInterface Controller. Prof. EngºespLuiz Antonio Vargas Pinto www.vargasp.com. Prof. Vargas

PIC. PeripheralInterface Controller. Prof. EngºespLuiz Antonio Vargas Pinto www.vargasp.com. Prof. Vargas PIC PeripheralInterface Controller Prof. EngºespLuiz Antonio Vargas Pinto www.vargasp.com Histórico Em 1965 a General Instruments criou a divisão de microeletrônica Nos anos 80 foi dividida e vendida a

Leia mais

ArchC. Wesley Nunes Gonçalves

ArchC. Wesley Nunes Gonçalves Implementação do Processador ARM7 em ArchC Wesley Nunes Gonçalves 23 de novembro de 2007 ARM7 Instruções Implementadas O ARM possui 37 registradores, sendo 31 registradores de propósito geral e 6 registradores

Leia mais

Acetatos de apoio às aulas teóricas

Acetatos de apoio às aulas teóricas Microprocessadores e Aplicações Acetatos de apoio às aulas teóricas Ana Cristina Lopes Dep. Engenharia Electrotécnica http://orion.ipt.pt anacris@ipt.pt Ana Cristina Lopes, 25 de Novembro de 2004 Microprocessadores

Leia mais

MICROCONTROLADORES PIC PRIMEIROS PASSOS

MICROCONTROLADORES PIC PRIMEIROS PASSOS MICROCONTROLADORES PIC PRIMEIROS PASSOS Os microcontroladores são chips inteligentes, que tem um processador, pinos de entradas/saídas e memória. Através da programação dos microcontroladores podemos controlar

Leia mais

ARQUITETURA DE COMPUTADORES - 1866

ARQUITETURA DE COMPUTADORES - 1866 7 Unidade Central de Processamento (UCP): O processador é o componente vital do sistema de computação, responsável pela realização das operações de processamento e de controle, durante a execução de um

Leia mais

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores.

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores. Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores. 7.3.1.2 Registradores: São pequenas unidades de memória, implementadas na CPU, com as seguintes características:

Leia mais

Arquitetura de Computadores. Assembly Miscelâneas. Mário O. de Menezes. http://www.tf.ipen.br/~mario

Arquitetura de Computadores. Assembly Miscelâneas. Mário O. de Menezes. http://www.tf.ipen.br/~mario Arquitetura de Computadores Assembly Miscelâneas Mário O. de Menezes http://www.tf.ipen.br/~mario AC Mário O. de Menezes 1 Lembrando Instruções Lógicas e Shift operam em bits individuais, diferente de

Leia mais

Experiência 1 -Introdução ao Módulo Didático MC-1 e Instruções de Transferência de Dados

Experiência 1 -Introdução ao Módulo Didático MC-1 e Instruções de Transferência de Dados UNIVERSIDADE ESTADUAL PAULISTA JÚLIO DE MESQUITA FILHO FACULDADE DE ENGENHARIA DE ILHA SOLTEIRA DEPARTAMENTO DE ENGENHARIA ELÉTRICA LABORATÓRIO DE MICROPROCESSADORES I ELE 1078 Experiência 1 -Introdução

Leia mais

Programação ao nível da máquina. Operações lógicas e aritméticas

Programação ao nível da máquina. Operações lógicas e aritméticas Programação ao nível da máquina Operações lógicas e aritméticas Operações lógicas e aritméticas Operações: aritméticas: add, sub, inc, dec, cmp lógicas: and, or, xor, not Realizadas pela ALU (Arithmetic

Leia mais

7. PROGRAMANDO O MICROCONTROLADOR. Microcontroladores - Prof: Demantova

7. PROGRAMANDO O MICROCONTROLADOR. Microcontroladores - Prof: Demantova 7. PROGRAMANDO O MICROCONTROLADOR 1 7. PROGRAMANDO O MICROCONTROLADOR: Hardware parte física do circuito eletrônico CPU onde está localizado o microcontrolador. Dentro do microcontrolador existe um conjunto

Leia mais

Operadores lógicos (bit a bit)

Operadores lógicos (bit a bit) Operadores lógicos (bit a bit) Instrução AND Instruções: AND OR XOR NOT Os operandos destas instruções podem ser de 8 ou 16 bits 10010011

Leia mais

Computadores de Programação (MAB353)

Computadores de Programação (MAB353) Computadores de Programação (MAB353) Aula 6: 27 de abril de 2010 1 Recaptulando operações já estudadas Operações lógicas 2 3 Exercícios Referências bibliográficas Recaptulando operações já estudadas Operações

Leia mais

Conjunto de instruções. O Conjunto de Instruções. Conjunto de instruções. Instruções típicas. Instruções típicas. Instruções típicas

Conjunto de instruções. O Conjunto de Instruções. Conjunto de instruções. Instruções típicas. Instruções típicas. Instruções típicas Conjunto de instruções O Conjunto de Instruções ISA Instruction Set Architecture Alguns conceitos... Linguagem máquina Combinação de 0 s e 1 s organizados segundo palavras que são as instruções que o processador

Leia mais

Sistemas Microcontrolados. Período Aula 4. 1 Saulo O. D. Luiz

Sistemas Microcontrolados. Período Aula 4. 1 Saulo O. D. Luiz Sistemas Microcontrolados Período 2009.2 Aula 4 1 Saulo O. D. Luiz Roteiro Introdução ao microcontrolador PIC 16F877 Arquitetura do PIC 16F877 Conjunto de instruções Registradores de configuração 2 Saulo

Leia mais

Conjunto de Instruções do 8051

Conjunto de Instruções do 8051 Apêndice B Conjunto de Instruções do 8051 A.G. e E.T.M. / 2001 (revisão) O 8051 apresenta 111 tipos de instruções, sendo 49 de um byte, 45 de dois bytes e 17 de três bytes. Levando-se em contas as variações

Leia mais

Hardware Parte I. Fábio Rodrigues de la Rocha

Hardware Parte I. Fábio Rodrigues de la Rocha Hardware Parte I Fábio Rodrigues de la Rocha PIC16F877 40 pinos Freqüência máxima 20MHz. Vias de programação 14 bits 33 portas configuráveis como entradas/saídas 15 interrupções diferentes Memória EEPROM

Leia mais

As 5 partes fundamentais. Linguagem de Programação Pinagem Características Elétricas Ambiente de Desenvolvimento Integrado - IDE

As 5 partes fundamentais. Linguagem de Programação Pinagem Características Elétricas Ambiente de Desenvolvimento Integrado - IDE SEL-433 APLICAÇÕES DE MICROPROCESSADORES I Como conhecer/estudar um Microprocessador/Microcontrolador As 5 partes fundamentais Programação de Microprocessadores Prof: Evandro L. L. Rodrigues Arquitetura

Leia mais

ULA Sinais de Controle enviados pela UC

ULA Sinais de Controle enviados pela UC Solução - Exercícios Processadores 1- Qual as funções da Unidade Aritmética e Lógica (ULA)? A ULA é o dispositivo da CPU que executa operações tais como: Adição Subtração Multiplicação Divisão Incremento

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Caminho de Dados Slide 1 Sumário Introdução Convenções Lógicas de Projeto Construindo um Caminho de Dados O Controle da ULA Projeto da Unidade de Controle Principal

Leia mais

Microprocessadores e Microcontroladores. Prova Substitutiva Uma Solução

Microprocessadores e Microcontroladores. Prova Substitutiva Uma Solução Prova Substitutiva Uma Solução Aluno: Matrícula: Uso de Interrupções e do Temporizador 1. Faça um programa (usando o assembly do 8051) para acionamento de um motor de corrente contínua, com as seguintes

Leia mais

Programação de Microprocessadores. Programação de Microprocessadores SEL-433 APLICAÇÕES DE MICROPROCESSADORES I

Programação de Microprocessadores. Programação de Microprocessadores SEL-433 APLICAÇÕES DE MICROPROCESSADORES I SEL-433 APLICAÇÕES DE MICROPROCESSADORES I Programação de Microprocessadores Microprocessadores são Máquinas de Estado Seqüenciais Síncronas que operam mediante a execução de uma seqüência de códigos binários

Leia mais

Processadores BIP. Conforme Morandi et al (2006), durante o desenvolvimento do BIP, foram definidas três diretrizes de projeto:

Processadores BIP. Conforme Morandi et al (2006), durante o desenvolvimento do BIP, foram definidas três diretrizes de projeto: Processadores BIP A família de processadores BIP foi desenvolvida por pesquisadores do Laboratório de Sistemas Embarcados e Distribuídos (LSED) da Universidade do Vale do Itajaí UNIVALI com o objetivo

Leia mais

Conjunto de instruções do CPU. Arquitectura de um computador. Definição das instruções (1) Definição das instruções (2)

Conjunto de instruções do CPU. Arquitectura de um computador. Definição das instruções (1) Definição das instruções (2) Arquitectura de um computador Caracterizada por: Conjunto de instruções do processador (ISA Estrutura interna do processador (que registadores existem, etc Modelo de memória (dimensão endereçável, alcance

Leia mais

Sistemas Microprocessados. sato<at>utfpr<dot>edu<dot>br

Sistemas Microprocessados. sato<at>utfpr<dot>edu<dot>br Sistemas Microprocessados satoutfpredubr http://pessoal.utfpr.edu.br/sato/ Assembly do 805 satoutfpredubr Sobre o material Essas transparências foram baseadas em materiais elaborados

Leia mais

Edeyson Andrade Gomes

Edeyson Andrade Gomes Sistemas Operacionais Conceitos de Arquitetura Edeyson Andrade Gomes www.edeyson.com.br Roteiro da Aula Máquinas de Níveis Revisão de Conceitos de Arquitetura 2 Máquina de Níveis Máquina de níveis Computador

Leia mais

x86 arquitetura e instruções básicas

x86 arquitetura e instruções básicas x86 arquitetura e instruções básicas 1 Família x86 Data CPU Palavra Endereço (bits) 1978 8086, 8088 1982 80186, 80188 1985 80386 1989 80486 1993 Pentium, Pentium MMX 1995 Pentium Pro 1997 Pentium II/III,

Leia mais

Aula 14: Instruções e Seus Tipos

Aula 14: Instruções e Seus Tipos Aula 14: Instruções e Seus Tipos Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) Instruções e Seus Tipos FAC 1 / 35 Conceitos Básicos Diego Passos

Leia mais

NOTAS DE AULA Prof. Antonio Carlos Schneider Beck Filho (UFSM) Prof. Júlio Carlos Balzano de Mattos (UFPel) Arquitetura de Von Neumann

NOTAS DE AULA Prof. Antonio Carlos Schneider Beck Filho (UFSM) Prof. Júlio Carlos Balzano de Mattos (UFPel) Arquitetura de Von Neumann Universidade Federal de Santa Maria NOTAS DE AULA Prof. Antonio Carlos Schneider Beck Filho (UFSM) Prof. Júlio Carlos Balzano de Mattos (UFPel) Arquitetura de Von Neumann O modelo (ou arquitetura) de von

Leia mais

Estrutura de um Computador

Estrutura de um Computador SEL-0415 Introdução à Organização de Computadores Estrutura de um Computador Aula 7 Prof. Dr. Marcelo Andrade da Costa Vieira MODELO DE VON NEUMANN PRINCÍPIOS A arquitetura de um computador consiste de

Leia mais

MODOS DE ENDEREÇAMENTO

MODOS DE ENDEREÇAMENTO UNINGÁ UNIDADE DE ENSINO SUPERIOR INGÁ FACULDADE INGÁ DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO ERINALDO SANCHES NASCIMENTO MODOS DE ENDEREÇAMENTO MARINGÁ 2014 SUMÁRIO 6 MODOS DE ENDEREÇAMENTO...2 6.1 ENDEREÇAMENTO

Leia mais

Prof. Adilson Gonzaga

Prof. Adilson Gonzaga Microprocessadores são Máquinas de Estado Seqüenciais Síncronas que operam mediante a execução de uma seqüência de códigos binários armazenados em memória. Prof. Adilson Gonzaga 1 As ordens ou comandos

Leia mais

Componentes do Computador e. aula 3. Profa. Débora Matos

Componentes do Computador e. aula 3. Profa. Débora Matos Componentes do Computador e modelo de Von Neumann aula 3 Profa. Débora Matos O que difere nos componentes que constituem um computador? Princípios básicos Cada computador tem um conjunto de operações e

Leia mais

Ministério da Educação UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ. Aula 2. Cibele Lemos Freire Viginoski

Ministério da Educação UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ. Aula 2. Cibele Lemos Freire Viginoski Aula 2 Cibele Lemos Freire Viginoski Registradores R0-R7: disponíveis para todas as instruções R8-R15: disponíveis para algumas instruções R13: SP (Stack Pointer) Pilha obrigatoriamente LIFO decrescente

Leia mais

2 Formalidades referentes ao trabalho

2 Formalidades referentes ao trabalho Bacharelado em Ciência da Computação DINF / UFPR Projetos Digitais e Microprocessadores 1 o Semestre de 2006 MICO-v12.r0 07/03/2006 Profs. Luis Allan Künzle e Armando Luiz Nicolini Delgado Atenção: Este

Leia mais

Sistemas Computacionais II Professor Frederico Sauer

Sistemas Computacionais II Professor Frederico Sauer Sistemas Computacionais II Professor Frederico Sauer Livro-texto: Introdução à Organização de Computadores 4ª edição Mário A. Monteiro Livros Técnicos e Científicos Editora. Atenção: Este material não

Leia mais

PCS-2302 / PCS-2024 Lab. de Fundamentos de Eng. de Computação

PCS-2302 / PCS-2024 Lab. de Fundamentos de Eng. de Computação PCS-2302 / PCS-2024 Lab. de Fundamentos de Eng. de Computação Aula 02 Anarosa Alves Franco Brandão (PCS 2302) Jaime Simão Sichman (PCS 2302) (PCS 2024) Ricardo Luís de Azevedo da Rocha (PCS 2024) Monitores:

Leia mais

Arquitectura de Computadores 3º Teste. Instruções do x86

Arquitectura de Computadores 3º Teste. Instruções do x86 Arquitectura de Computadores 3º Teste Ano Lectivo: 2009/2010 Data: 19 de Dezembro de 2009 Duração: 2h00 INFORMAÇÕES GERAIS 1. Mantenha na secretária apenas a sua identificação e uma caneta (azul ou preta).

Leia mais

Unidade: Unidade Lógica e Aritmética e Registradores. Unidade I:

Unidade: Unidade Lógica e Aritmética e Registradores. Unidade I: Unidade: Unidade Lógica e Aritmética e Registradores Unidade I: 0 Unidade: Unidade Lógica e Aritmética e Registradores UNIDADE LÓGICA E ARITMÉTICA E REGISTRADORES O Processador é um chip com milhares de

Leia mais

Linguagem de Montagem Funcionamento de CPU e Assembly Rudimentar

Linguagem de Montagem Funcionamento de CPU e Assembly Rudimentar Componentes de um Computador (5) Linguagem de Montagem Funcionamento de CPU e Assembly Rudimentar Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br) 2007/01 - INF02597 Com slides de Roberta Lima Gomes

Leia mais

Unidade 10: A Unidade Lógica Aritmética e as Instruções em Linguagem de Máquina Prof. Daniel Caetano

Unidade 10: A Unidade Lógica Aritmética e as Instruções em Linguagem de Máquina Prof. Daniel Caetano Arquitetura e Organização de Computadores 1 Unidade 10: A Unidade Lógica Aritmética e as Instruções em Linguagem de Máquina Prof. Daniel Caetano Objetivo: Apresentar as funções o mecanismo de atuação da

Leia mais

ARQUITETURA DE PROCESSAMENTO

ARQUITETURA DE PROCESSAMENTO ARQUITETURA DE PROCESSAMENTO Os subsistemas digitais codificadores, decodificadores, multiplexadores, demultiplexadores, registradores e contadores, possibilitam a criação de um sistema digital mais complexo

Leia mais

Caminho dos Dados e Atrasos

Caminho dos Dados e Atrasos Caminho dos Dados e Atrasos Arquiteturas para Alto Desmpenho Prof. pauloac@ita.br Sala 110 Prédio da Computação www.comp.ita.br/~pauloac Pipeline MIPS O MIPS utiliza um pipeline com profundidade 5, porém

Leia mais

Universidade de São Paulo

Universidade de São Paulo Conjunto Instruções ARM Universidade de São Paulo Sistemas Embarcados Jorge Luiz e Silva ARM versões. ARM Linguagem Assembly. ARM modelo de programação. ARM organização de memória. ARM operação com dados.

Leia mais

Conjunto de instruções e modos de. aula 4. Profa. Débora Matos

Conjunto de instruções e modos de. aula 4. Profa. Débora Matos Conjunto de instruções e modos de endereçamento aula 4 Profa. Débora Matos Conjunto de Instruções A = ((B + C) x D + E F)/(G x H) A H denotam posições da memória endereços As arquiteturas possuem as seguintes

Leia mais

Capítulo 4. MARIE (Machine Architecture Really Intuitive and Easy)

Capítulo 4. MARIE (Machine Architecture Really Intuitive and Easy) Capítulo 4 João Lourenço Joao.Lourenco@di.fct.unl.pt Faculdade de Ciências e Tecnologia Universidade Nova de Lisboa 2007-2008 MARIE (Machine Architecture Really Intuitive and Easy) Adaptado dos transparentes

Leia mais

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01 Unidade Central de Processamento (CPU) Processador Renan Manola Introdução ao Computador 2010/01 Componentes de um Computador (1) Computador Eletrônico Digital É um sistema composto por: Memória Principal

Leia mais

SEL-614 MICROPROCESSADORES E APLICAÇÕES. Adilson Gonzaga

SEL-614 MICROPROCESSADORES E APLICAÇÕES. Adilson Gonzaga SEL-614 MICROPROCESSADORES E APLICAÇÕES Prof: Adilson Gonzaga HISTÓRICO Microprocessador Circuito integrado ( chip ) capaz de executar instruções. 1971 Intel Corporation lançou no mercado o microprocessador

Leia mais

Arquitetura de Computadores. Linguagem de Máquina

Arquitetura de Computadores. Linguagem de Máquina Arquitetura de Computadores Linguagem de Máquina Ivan Saraiva Silva Formato de Instrução MAC O MIC possui dois formatos de instrução: 4 bits 12 bits Formato 1 CODOP ENDEREÇO 8 bits 8 bits Formato 2 CODOP

Leia mais

Conjunto de. Instrução MIPS. Parte II. Instruções MIPS. Instruções MIPS. Instruções MIPS :: Instruções lógicas. :: Instruções lógicas

Conjunto de. Instrução MIPS. Parte II. Instruções MIPS. Instruções MIPS. Instruções MIPS :: Instruções lógicas. :: Instruções lógicas Faculdade de Ciências Aplicadas e Sociais de Petrolina FACAPE Conjunto de Pae II Transferência de Dados Lógicas Controle Supoe a procedimentos Prof. Sérgio Adaptado dos slides de Sistemas Processadores

Leia mais

Organização de Computadores 1

Organização de Computadores 1 Organização de Computadores 1 5 CONJUNTO DE INSTRUÇÕES Prof. Luiz Gustavo A. Martins Introdução O que é um conjunto de instruções? Coleção completa das instruções que a CPU é capaz de executar (entende).

Leia mais

Arquitetura de Computadores I

Arquitetura de Computadores I Arquitetura de Computadores I Pipeline -- Conflito de dados paradas e adiantamentos -- Conflito de controle detecção de desvios e descarte de instruções -- Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Caminho de Dados Slide 1 Sumário Introdução Convenções Lógicas de Projeto Construindo um Caminho de Dados O Controle da ULA Projeto da Unidade de Controle Principal

Leia mais

2.5 - Instruções Lógicas do ULA

2.5 - Instruções Lógicas do ULA 2.5 - Instruções Lógicas do 8085 - ULA Todas as operações lógicas e aritméticas em qualquer microprocessador são realizadas em uma unidade dedicada denominada Unidade Lógica e Aritmética (ULA). Para auxiliar

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Pipeline Slide 1 Pipeline Pipeline Hazards: Hazards Estruturais Hazards de Dados Hazards de Controle Organização e Arquitetura de Computadores I Caminho de Dados

Leia mais

Arquitetura de Computadores. Tipos de Instruções

Arquitetura de Computadores. Tipos de Instruções Arquitetura de Computadores Tipos de Instruções Tipos de instruções Instruções de movimento de dados Operações diádicas Operações monádicas Instruções de comparação e desvio condicional Instruções de chamada

Leia mais

Objetivos Gerais. Arquitetura de Computadores. Arquiteturas estudadas. O Computador Neander

Objetivos Gerais. Arquitetura de Computadores. Arquiteturas estudadas. O Computador Neander Objetivos Gerais Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática UFG 1S/2005 ISA Parte II: Arquiteturas-Exemplo Simuladores e Máquinas Reais Demonstrar os conceitos genéricos

Leia mais

3. O NIVEL DA LINGUAGEM DE MONTAGEM

3. O NIVEL DA LINGUAGEM DE MONTAGEM 3. O NIVEL DA LINGUAGEM DE MONTAGEM Nas aulas anteriores tivemos a oportunidade de discutir dois diferentes níveis presentes na maioria dos computadores atuais. Nesta aula dedica-se a outro nível que também

Leia mais

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br - Aula 5 - O NÍVEL DA LINGUAGEM DE MONTAGEM 1. INTRODUÇÃO É relativamente fácil compreender os fundamentos da programação de computadores, sob o ponto de vista da inteligibilidade dos comandos de alto

Leia mais

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM 71 Introdução Difere dos níveis inferiores por ser implementado por tradução A tradução é usada quando um processador está disponível para uma mensagem fonte mas

Leia mais

Unidade Central de Processamento

Unidade Central de Processamento Unidade Central de Processamento heloar.alves@gmail.com Site: heloina.com.br 1 CPU A Unidade Central de Processamento (UCP) ou CPU (Central Processing Unit), também conhecida como processador, é responsável

Leia mais

O processador é composto por: Unidade de controlo - Interpreta as instruções armazenadas; - Dá comandos a todos os elementos do sistema.

O processador é composto por: Unidade de controlo - Interpreta as instruções armazenadas; - Dá comandos a todos os elementos do sistema. O processador é composto por: Unidade de controlo - Interpreta as instruções armazenadas; - Dá comandos a todos os elementos do sistema. Unidade aritmética e lógica - Executa operações aritméticas (cálculos);

Leia mais

3/9/2010. Ligação da UCP com o barramento do. sistema. As funções básicas dos registradores nos permitem classificá-los em duas categorias:

3/9/2010. Ligação da UCP com o barramento do. sistema. As funções básicas dos registradores nos permitem classificá-los em duas categorias: Arquitetura de Computadores Estrutura e Funcionamento da CPU Prof. Marcos Quinet Universidade Federal Fluminense P.U.R.O. Revisão dos conceitos básicos O processador é o componente vital do sistema de

Leia mais

4-1. Parte2: A Arquitetura do Conjunto de Instruções

4-1. Parte2: A Arquitetura do Conjunto de Instruções 4-1 Parte2: A Arquitetura do Conjunto de Instruções 4-2 Bibliografia [1] Miles J. Murdocca e Vincent P. Heuring, Introdução à Arquitetura de Computadores [2] Marcelo Rubinstein Transparências do curso

Leia mais

7. Técnicas de Programação

7. Técnicas de Programação 7. Professor: Vlademir de Oliveira Disciplina: Microcontroladores e DSP 7.1 Fluxograma Definições Início/Fim Sub-rotinas Tomada de decisão Terminação 7.1 Fluxograma Exercícios Ex.1: Testa um botão e acende

Leia mais

Curso de Programação PIC Prof. Msc. Engº Getúlio Teruo Tateoki

Curso de Programação PIC Prof. Msc. Engº Getúlio Teruo Tateoki Curso de Programação PIC Prof. Msc. Engº Getúlio Teruo Tateoki Este Curso de Programação foi projetado para introduzir ao aluno na programação dos microcontroladores PIC16F84. Para se entender como programar

Leia mais

Introdução à Arquitetura de Computadores

Introdução à Arquitetura de Computadores 1 Introdução à Arquitetura de Computadores Hardware e software Organização de um computador: Processador: registradores, ALU, unidade de controle Memórias Dispositivos de E/S Barramentos Linguagens de

Leia mais

Introdução ao PIC. Guilherme Luiz Moritz 1. 6 de novembro de DAELT - Universidade Tecnológica Federal do Paraná

Introdução ao PIC. Guilherme Luiz Moritz 1. 6 de novembro de DAELT - Universidade Tecnológica Federal do Paraná Guilherme Luiz Moritz 1 1 DAELT - Universidade Tecnológica Federal do Paraná 6 de novembro de 2013 Características do PIC Arquitetura Harvard RISC, 35 instruções 8 a 84 pinos Mais de 180 modelos Vários

Leia mais

Unidade 14: Arquiteturas CISC e RISC Prof. Daniel Caetano

Unidade 14: Arquiteturas CISC e RISC Prof. Daniel Caetano Arquitetura e Organização de Computadores 1 Unidade 14: Arquiteturas CISC e RISC Prof. Daniel Caetano Objetivo: Apresentar os conceitos das arquiteturas CISC e RISC, confrontando seus desempenhos. Bibliografia:

Leia mais

MIPS. Prof. Carlos Bazilio http://www.ic.uff.br/~bazilio bazilio@ic.uff.br

MIPS. Prof. Carlos Bazilio http://www.ic.uff.br/~bazilio bazilio@ic.uff.br MIPS Prof. Carlos Bazilio http://www.ic.uff.br/~bazilio bazilio@ic.uff.br Introdução Plataforma projetada da parceria entre NEC, Nintendo, Silicon Graphics e Sony Possui um conjunto de instruções que e

Leia mais

Introdução. A Informação e sua Representação (Parte III) Universidade Federal de Campina Grande Departamento de Sistemas e Computação

Introdução. A Informação e sua Representação (Parte III) Universidade Federal de Campina Grande Departamento de Sistemas e Computação Universidade Federal de Campina Grande Departamento de Sistemas e Computação Introdução à Computação A Informação e sua Representação (Parte III) Prof.a Joseana Macêdo Fechine Régis de Araújo joseana@computacao.ufcg.edu.br

Leia mais

Introdução. INF1005 Programação I 33K Prof. Gustavo Moreira gmoreira@inf.puc-rio.br

Introdução. INF1005 Programação I 33K Prof. Gustavo Moreira gmoreira@inf.puc-rio.br Introdução INF1005 Programação I 33K Prof. Gustavo Moreira gmoreira@inf.puc-rio.br introdução Tópicos conceitos básicos o que é um programa um programa na memória decifrando um código referência Capítulo

Leia mais

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO Capítulo 1 INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO 1.1 Histórico de Linguagens de Programação Para um computador executar uma dada tarefa é necessário que se informe a ele, de uma maneira clara, como ele

Leia mais

BARRAMENTO DO SISTEMA

BARRAMENTO DO SISTEMA BARRAMENTO DO SISTEMA Memória Principal Processador Barramento local Memória cachê/ ponte Barramento de sistema SCSI FireWire Dispositivo gráfico Controlador de vídeo Rede Local Barramento de alta velocidade

Leia mais

CAPÍTULO 6 ARITMÉTICA DIGITAL

CAPÍTULO 6 ARITMÉTICA DIGITAL CAPÍTULO 6 ARITMÉTICA DIGITAL Introdução Números decimais Números binários positivos Adição Binária Números negativos Extensão do bit de sinal Adição e Subtração Overflow Aritmético Circuitos Aritméticos

Leia mais

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES Prof. Dr. Daniel Caetano 2012-1 Objetivos Apresentar o funcionamento do computador Apresentar a função da memória e dos dispositivos

Leia mais

Laboratório de Microprocessadores e Microcontroladores

Laboratório de Microprocessadores e Microcontroladores Escola de Engenharia Elétrica, Mecânica e de Computação Universidade Federal de Goiás Laboratório de Microprocessadores e Microcontroladores Experimento 4: Temporizadores e Motor de Passo Alunos: Matrícula:

Leia mais

Arquitetura de Computadores. Prof. João Bosco Jr.

Arquitetura de Computadores. Prof. João Bosco Jr. Arquitetura de Computadores Prof. João Bosco Jr. Unidade II Aula 1 Nível ISA Posicionado entre a microarquitetura e o SO Define a arquitetura (Conjunto de Instruções) É a interface entre o Software e o

Leia mais

Ambiente de desenvolvimento de Programação Assembly MCU 8051 IDE

Ambiente de desenvolvimento de Programação Assembly MCU 8051 IDE SEL-433 APLICAÇÕES DE MICROPROCESSADORES I Prof. Evandro L. L. Rodrigues Ambiente de desenvolvimento de Programação Assembly MCU 8051 IDE http://mcu8051ide.sourceforge.net/ Tela inicial Criar novo projeto:

Leia mais

AJProença, Sistemas de Computação, UMinho, 2017/18 1. Componentes (físicos) a analisar: a unidade de processamento / o processador:

AJProença, Sistemas de Computação, UMinho, 2017/18 1. Componentes (físicos) a analisar: a unidade de processamento / o processador: Introdução aos Sistemas de Computação (4) Estrutura do tema ISC 1. Representação de informação num computador 2. Organização e estrutura interna dum computador 3. Execução de programas num computador 4.

Leia mais

ARQUITETURA DE COMPUTADORES

ARQUITETURA DE COMPUTADORES ARQUITETURA DE COMPUTADORES Aula 08: UCP Características dos elementos internos da UCP: registradores, unidade de controle, decodificador de instruções, relógio do sistema. Funções do processador: controle

Leia mais

Arquitetura de Computadores - Arquitetura RISC. por Helcio Wagner da Silva

Arquitetura de Computadores - Arquitetura RISC. por Helcio Wagner da Silva Arquitetura de Computadores - Arquitetura RISC por Helcio Wagner da Silva Introdução RISC = Reduced Instruction Set Computer Elementos básicos: Grande número de registradores de propósito geral ou uso

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 3 Software Prof.: Edilberto M. Silva http://www.edilms.eti.br SO - Prof. Edilberto Silva Barramento Sistemas Operacionais Interliga os dispositivos de E/S (I/O), memória principal

Leia mais

Organização de Computadores Hardware

Organização de Computadores Hardware Organização de Computadores Hardware Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br www.univasf.edu.br/~marcus.ramos Computador Ferramenta

Leia mais

5. Conjunto de Instruções do MCU PIC

5. Conjunto de Instruções do MCU PIC 5. do MCU PIC Professor: Vlademir de Oliveira Disciplina: Microcontroladores e DSP 5.1 Arquitetura interna Ciclo de Busca e Execução da Instrução O clock externo é internamente dividido por 4, gerando

Leia mais

3. Arquitetura Básica do Computador

3. Arquitetura Básica do Computador 3. Arquitetura Básica do Computador 3.1. Modelo de Von Neumann Dar-me-eis um grão de trigo pela primeira casa do tabuleiro; dois pela segunda, quatro pela terceira, oito pela quarta, e assim dobrando sucessivamente,

Leia mais

A Unidade Central de Processamento é a responsável pelo processamento e execução de programas armazenados na MP.

A Unidade Central de Processamento é a responsável pelo processamento e execução de programas armazenados na MP. A ARQUITETURA DE UM COMPUTADOR A arquitetura básica de um computador moderno segue ainda de forma geral os conceitos estabelecidos pelo Professor da Universidade de Princeton, John Von Neumann (1903-1957),

Leia mais

Funcionamento básico de um computador

Funcionamento básico de um computador Funcionamento básico de um computador Processador Unidade de dados Unidade de controlo Arquitetura de computador básica Linguagem assembly Exemplos Arquitetura de Computadores Funcionamento básico de um

Leia mais