Baixe Terceira aula de microprocessadores e outras Slides em PDF para Microprocessadores, somente na Docsity!
Introdução a Linguagem de Programação
x
Prof. Dr. Remy Eskinazi
DEE – UPE – Escola Politécnica / CEFET-PE [email protected]
Introdução a Linguagem de Programação
- Cada μp tem suas próprias palavras (Opcodes ), significados e linguagem
- Opcodes length – nº de bits que o μp reconhece e processa de cada vez
- Opcodes são formados pelas várias combinações desses bits
- 8085: linguagem de até 256 opcodes (2^8 )
- Projetista da CPU cria instruções:
- seleciona combinações de padrões de bits
- Atribui um significado especifico para cada combinação usando decodificadores
- Cada μp tem seu próprio conjunto de instruções
- Programa em assembly para um microprocessador não é transferível (executável) para outro de arquitetura diferente.
- Instruções são compostas por uma ou mais palavras
- Conjunto de instruções: linguagem de máquina
- O μp determina:
- A linguagem de máquina e
- Operações do sistema
Formato da Instrução
- Identificação de registradores Código Registradores Código Par de Registradores 000 B 00 BC 001 C 01 DE 010 D 10 HL 011 E 11 SP 100 H 101 L 111 A 110 Reservado **Instrução Código da Instrução
- RLC: Rotaciona os bits de A à 00000111 = 07H (RLC)** **esquerda de uma posição (opcode: 8bits)
- ADD Reg: Adiciona o conteúdo de 10000 SSS (opcode: 5bits)** **um registrador ao A (operando: 3bits)
- ADD B 10000 000 = 80H
- MOV C,A 01 001 111 = 4F (opcode: 01)** DDD SSS (operando: 001 111) D 7 D 6 D 5 D 4 D 3 D 2 D 1 D 0 Opcode DDD SSS
Notações
- Notações usadas na descrição de instruções
- R um registrador de 8 bits (A,B,C,D,E,H,L)
- M registrador de Memória (HL)
- Rs registrador fonte
- Rd registrador destino (A,B,C,D,E,H,L)
- Rp par de registradores (BC, DE, HL, SP)
Ferramentas para Desenvolvimento de Programas em Assembly
- Assembler/Compilador
- programa que faz a tradução para linguagem de máquina
- Assembly / C → Código binário executável
- Linker
- Liga os vários arquivos objeto, gerando um único executável
- Cada μp tem seu próprio Assembler / Compilador
Montagem de Programa 8
- ASM file – arquivo fonte
- OBJ file – arquivo binário intermediário (Utilizado como entrada no Linker)
- HEX file – arquivo executável utilizado para programar o Microcontrolador
- LST file – arquivo com proposta de documentação: » locações de memória, mnemônicos, comentários _- Obs. No simulador 8085 o arquivo de execução é o OBJ (.o)_* Programa Fonte Asm / C (código fonte) Programa em Código binário (código objeto) montador Programa em Código binário executável (HEX file) Linker Compilador
Arquitetura interna do uP x ULA ACC Temp B (^) C D E H L PC SP Decodificação e Controle Dados Endereços Controle Flags
Arquitetura x
ULA
Instruções x85 – Mover Dados
- X no mnemônico implica que a instruçao manipula Par de Registradores (16 bits);
- LXI Load Register Pair with Immediate data
- LDAX Load Accumulator from Address in Register Pair
- STAX Store Accumulator in Address in Register Pair
- XCHG Exchange H & L with D & E
- XTHL Exchange Top of Stack with H & L
Instruções x85 – Aritmética
- Soma, Subtração, Incrementa ou Decrementa dados nos Registradores ou Memória.
- ADD Add to Accumulator
- ADI Add Immediate Data to Accumulator
- ADC Add to Accumulator Using Carry Flag
- ACI Add Immediate data to Accumulator Using Carry
- SUB Subtract from Accumulator
- SUI Subtract Immediate Data from Accumulator
- SBB Subtract from Accumulator Using Borrow (Carry) Flag
- SBI Subtract Immediate from Accumulator Using Borrow (Carry) Flag
- INR Increment Specified Byte by One
- DCR Decrement Specified Byte by One
- INX Increment Register Pair by One
- DCX Decrement Register Pair by One
- DAD Double Register Add; Add Content of Register Pair to H & L Register Pair
- DAA Decimal Adjust of Acumalator
Instruções x85 – Lógica
- Compare instructions - Compara o operando com o Acumulador;
- CMP Compare
- CPI Compare Using Immediate Data
- Rotate instructions – Deslocam 1 bit para esquerda ou direita :
- RLC Rotate Accumulator Left
- RRC Rotate Accumulator Right
- RAL Rotate Left Through Carry
- RAR Rotate Right Through Carry
- Complemento e Carry:
- CMA Complement Accumulator
- CMC Complement Carry Flag
- STC Set Carry Flag
Instruções x85 – Lógica
- JMP Jump
- CALL Call
- RET Return
- Salto Condicional
- JNZ Not Zero (Z = 0)
- JZ Zero (Z = 1)
- JNC No Carry (C = 0)
- JC Carry (C = 1)
- JPO Parity Odd (P = 0)
- JPE Parity Even (P = 1)
- JP Plus (S = 0)
- JM Minus (S = 1)
Instruções x85 – Operações de E/S
- IN Input Operation
- OUT Output Operation
Instruções x85 – Operações de Controle
- EI Enable Interrupt System
- DI Disable Interrupt System
- HLT Halt
- NOP No Operation