SlideShare uma empresa Scribd logo
1 de 39
Introdução a Linguagem de Programação
8085
Prof. Dr. Remy Eskinazi
DEE – UPE – Escola Politécnica / CEFET-PE
remy.eskinazi@gmail.com
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 (28)
• 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
Linguagem Assembly do 8085
• 246 padrões de bits
• 74 instruções (Instruction set)
• Formatos da instrução
• Binário (difícil para se programar  )
• Hexadecimal (difícil para se programar  )
• Assembly (menos difícil  )
• C (Fácil)
• Comprimento da Instrução no 8085
– Até 3 bytes
• Opcode (1º byte) RLC – rotaciona acumulador (1 byte)
• Operando (2º , 3º byte) CPI – compara valor com acumulador (2 bytes)
LXI B, dado16 – (3 bytes)
• Declaração em assembly pode ter 4 campos
Label Opcode Operando Comentário
START: LXI SP, 20FFH ;Inicializa stack pointer
Binário: 00111100
Hexadecimal: 3CH
Mnemônico: INR A
A  A + 1
Binário: 10000000
Hexadecimal: 80H
Mnemônico: ADD B
B  A + B
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
1. RLC: Rotaciona os bits de A à 00000111 = 07H (RLC)
esquerda de uma posição (opcode: 8bits)
2. ADD Reg: Adiciona o conteúdo de 10000 SSS (opcode: 5bits)
um registrador ao A (operando: 3bits)
3. ADD B 10000 000 = 80H
4. MOV C,A 01 001 111 = 4F (opcode: 01)
DDD SSS (operando: 001 111)
D7 D6 D5 D4 D3 D2 D1 D0
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)
Assembly x Alto Nível
• Linguagem de máquina e linguagem
Assembly
• low-level
• Assembly x Linguagens de alto nível
• Programas compactos
• Requerem menos memória
• Maior eficiência
• Aplicações de controle: programas pequenos e compactos
• Alto nível (C, C++, Processing): Maior portabilidade
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
Instruções 8085
Arquitetura 8085
ULA
Instruções 8085 – Mover Dados
• Movimenta (Copia) dados entre registradores e memória
• MOV R1,R2, M ;Move
• MVI Ri, <dado8> ;Move Immediate
• LDA <end16> ;Load Accumulator Directly from Memory
• STA <end16> ;Store Accumulator Directly in Memory
• LHLD <end16> ;Load H & L Registers Directly from Memory
• SHLD <end16> ;Store H & L Registers Directly in Memory
Instruções 8085 – Mover Dados
• An 'X' in the name of a data transfer instruction implies that it
deals with a register pair (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 8085 – Aritmética
• Add, Subtract, Increment / Decrement data in registers or memory.
• 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
Instruções 8085 – Lógica
• This group performs logical (Boolean) operations on data in registers
and memory and on condition flags.
• These instructions enable you to set specific bits in the accumulator
ON or OFF.
• ANA Logical AND with Accumulator
• ANI Logical AND with Accumulator Using Immediate
Data
• ORA Logical OR with Accumulator
• OR Logical OR with Accumulator Using Immediate
Data
• XRA Exclusive Logical OR with Accumulator
• XRI Exclusive OR Using Immediate Data
Instruções 8085 – Lógica
• The Compare instructions compare the content of an 8-bit value with
the contents of the accumulator;
• CMP Compare
• CPI Compare Using Immediate Data
• The rotate instructions shift the contents of the accumulator one bit
position to the left or right:
• RLC Rotate Accumulator Left
• RRC Rotate Accumulator Right
• RAL Rotate Left Through Carry
• RAR Rotate Right Through Carry
• Complement and carry flag instructions:
• CMA Complement Accumulator
• CMC Complement Carry Flag
• STC Set Carry Flag
Instruções 8085 – Lógica
• Unconditional branching
•
– JMP <addr16> Jump
– CALL <add16r> Call
– RET Return
• Conditional branching
– JNZ <addr16> Not Zero (Z = 0)
– JZ <addr16> Zero (Z = 1)
– JNC <addr16> No Carry (C = 0)
– JC <addr16> Carry (C = 1)
– JPO <addr16> Parity Odd (P = 0)
– JPE <addr16> Parity Even (P = 1)
– JP <add16r> Plus (S = 0)
– JM <addr16> Minus (S = 1)
Instruções 8085 – Operações com a pilha
• PUSH Push Two bytes of Data onto the Stack
• POP Pop Two Bytes of Data off the Stack
• XTHL Exchange Top of Stack with H & L
• SPHL Move content of H & L to Stack Pointer
Instruções 8085 – Operações de E/S
• IN <addr8> Input Operation
• OUT <addr8> Output Operation
Instruções 8085 – Operações de Controle
• EI Enable Interrupt System
• DI Disable Interrupt System
• HLT Halt
• NOP No Operation
Detalhamento das Instruções
Mover Dados
Mover Dados
Mover Dados
Instruções Aritméticas
Instruções Aritméticas
Instruções Aritméticas
Instruções Aritméticas
Instruções Aritméticas
Instruções Lógicas
Instruções Lógicas
Instruções de Saltos e Desvios
Instruções de Saltos e Desvios
Instruções de Rotação
Complemento e Manipulação de Bit
Instrução de Parada (HLT)
Instrução de Saida (OUT)
Instrução de Entrada (IN)
Exemplo Para simulador 8085 -ES
Exemplo Para simulador 8085 -ES
; Diretivas do compilador 8085:
; a diretiva .define associa um valor a um nome a ser usado no programa
; a diretiva .data estabelece valores iniciais em posições da memória. DB significa “Defina Byte”
; a diretiva .org define um endereço inicial para o código que vem a seguir. ORG significa “origin”
; define variáveis
.define ;
BUFFER 2050H ; nomeia 2050H com nome BUFFER
DADO 10101010b ; byte para colocar no buffer
COUNT 32 ; byte contador
;Inicializa dados em 2100h
.data 2100h
V1: DB 200 ; variável global de 1 byte = 200
V2: DB 7,2,5 ; variável global de 3 bytes
;início do programa
.ORG 0000H ; inicio
MVI A, DADO ; inicializa A com valor
LXI H, BUFFER ; inicializa ponteiro de memória
MVI B, COUNT ; inicializa contador de laço
LOOP: MOV M, A ; armazena DATA na memória
INX H ; incrementa ponteiro BUFFER
DCR B ; decrementa contador
JNZ LOOP ; se não zero (Z=0), repita para o próximo byte
HLT

Mais conteúdo relacionado

Semelhante a -Aula 4 - Programacao do 8085.ppt

Assemblyparte1 140320111308-phpapp02
Assemblyparte1 140320111308-phpapp02Assemblyparte1 140320111308-phpapp02
Assemblyparte1 140320111308-phpapp02bruno santos ferreira
 
Arquitetura de Computadores: Assembly
Arquitetura de Computadores: AssemblyArquitetura de Computadores: Assembly
Arquitetura de Computadores: AssemblyElaine Cecília Gatto
 
Slides do treinamento Altera - Introdução a FPGA
Slides do treinamento Altera - Introdução a FPGASlides do treinamento Altera - Introdução a FPGA
Slides do treinamento Altera - Introdução a FPGAandrecasp
 
Aula 7 conjunto de instrucoes
Aula 7   conjunto de instrucoesAula 7   conjunto de instrucoes
Aula 7 conjunto de instrucoesCratuscb
 
Estudo dirigido arquitetura didática
Estudo dirigido arquitetura didáticaEstudo dirigido arquitetura didática
Estudo dirigido arquitetura didáticaandrademanoel
 
Pbl assembly avr como atmega328 p - rev.1
Pbl   assembly avr como atmega328 p - rev.1Pbl   assembly avr como atmega328 p - rev.1
Pbl assembly avr como atmega328 p - rev.1andrademanoel
 
Tradutor de Pig Latin
Tradutor de Pig LatinTradutor de Pig Latin
Tradutor de Pig LatinElen Arantza
 
Webinar_ Julho 2023 - Embarcados.pdf
Webinar_ Julho 2023 - Embarcados.pdfWebinar_ Julho 2023 - Embarcados.pdf
Webinar_ Julho 2023 - Embarcados.pdfEmbarcados
 
Curso basico automatos programaveis dia 1
Curso basico   automatos programaveis dia 1Curso basico   automatos programaveis dia 1
Curso basico automatos programaveis dia 1Alcides Santos
 
Tcc ritzmann,m.r. robotec
Tcc ritzmann,m.r. robotecTcc ritzmann,m.r. robotec
Tcc ritzmann,m.r. robotecMagno Ritzmann
 
Clp completa
Clp completaClp completa
Clp completapanelada
 
2° estuda ControlLogix Motion.ppt
2° estuda ControlLogix Motion.ppt2° estuda ControlLogix Motion.ppt
2° estuda ControlLogix Motion.pptjulyocarlos
 
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02Cláudio Alves
 
Microcontroladores pic ling c unicamp
Microcontroladores pic ling c unicampMicrocontroladores pic ling c unicamp
Microcontroladores pic ling c unicampFrancisco Fambrini
 

Semelhante a -Aula 4 - Programacao do 8085.ppt (20)

Aula1 30-07-120922184742-phpapp02
Aula1 30-07-120922184742-phpapp02Aula1 30-07-120922184742-phpapp02
Aula1 30-07-120922184742-phpapp02
 
Assemblyparte1 140320111308-phpapp02
Assemblyparte1 140320111308-phpapp02Assemblyparte1 140320111308-phpapp02
Assemblyparte1 140320111308-phpapp02
 
Arquitetura de Computadores: Assembly
Arquitetura de Computadores: AssemblyArquitetura de Computadores: Assembly
Arquitetura de Computadores: Assembly
 
Slides do treinamento Altera - Introdução a FPGA
Slides do treinamento Altera - Introdução a FPGASlides do treinamento Altera - Introdução a FPGA
Slides do treinamento Altera - Introdução a FPGA
 
Aula 7 conjunto de instrucoes
Aula 7   conjunto de instrucoesAula 7   conjunto de instrucoes
Aula 7 conjunto de instrucoes
 
Estudo dirigido arquitetura didática
Estudo dirigido arquitetura didáticaEstudo dirigido arquitetura didática
Estudo dirigido arquitetura didática
 
Pbl assembly avr como atmega328 p - rev.1
Pbl   assembly avr como atmega328 p - rev.1Pbl   assembly avr como atmega328 p - rev.1
Pbl assembly avr como atmega328 p - rev.1
 
Pic16f628a
Pic16f628aPic16f628a
Pic16f628a
 
Tradutor de Pig Latin
Tradutor de Pig LatinTradutor de Pig Latin
Tradutor de Pig Latin
 
Arm Cortex
Arm CortexArm Cortex
Arm Cortex
 
Cool 3 assembly para linux
Cool 3   assembly para linuxCool 3   assembly para linux
Cool 3 assembly para linux
 
Webinar_ Julho 2023 - Embarcados.pdf
Webinar_ Julho 2023 - Embarcados.pdfWebinar_ Julho 2023 - Embarcados.pdf
Webinar_ Julho 2023 - Embarcados.pdf
 
Curso basico automatos programaveis dia 1
Curso basico   automatos programaveis dia 1Curso basico   automatos programaveis dia 1
Curso basico automatos programaveis dia 1
 
Tcc ritzmann,m.r. robotec
Tcc ritzmann,m.r. robotecTcc ritzmann,m.r. robotec
Tcc ritzmann,m.r. robotec
 
Webinar SDR
Webinar SDRWebinar SDR
Webinar SDR
 
Clp completa
Clp completaClp completa
Clp completa
 
2° estuda ControlLogix Motion.ppt
2° estuda ControlLogix Motion.ppt2° estuda ControlLogix Motion.ppt
2° estuda ControlLogix Motion.ppt
 
05-ModeloDeVonNeumann.pdf
05-ModeloDeVonNeumann.pdf05-ModeloDeVonNeumann.pdf
05-ModeloDeVonNeumann.pdf
 
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
 
Microcontroladores pic ling c unicamp
Microcontroladores pic ling c unicampMicrocontroladores pic ling c unicamp
Microcontroladores pic ling c unicamp
 

Último

apresentação de Bancos de Capacitores aula
apresentação de Bancos de Capacitores aulaapresentação de Bancos de Capacitores aula
apresentação de Bancos de Capacitores aulaWilliamCruz402522
 
NR10 - Treinamento LOTO - 2023.pp tx
NR10 - Treinamento LOTO - 2023.pp     txNR10 - Treinamento LOTO - 2023.pp     tx
NR10 - Treinamento LOTO - 2023.pp txrafaelacushman21
 
Apresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPMApresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPMdiminutcasamentos
 
Lista de presença treinamento de EPI NR-06
Lista de presença treinamento de EPI NR-06Lista de presença treinamento de EPI NR-06
Lista de presença treinamento de EPI NR-06AndressaTenreiro
 
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptxVagner Soares da Costa
 
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docxTRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docxFlvioDadinhoNNhamizi
 
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptxVagner Soares da Costa
 

Último (7)

apresentação de Bancos de Capacitores aula
apresentação de Bancos de Capacitores aulaapresentação de Bancos de Capacitores aula
apresentação de Bancos de Capacitores aula
 
NR10 - Treinamento LOTO - 2023.pp tx
NR10 - Treinamento LOTO - 2023.pp     txNR10 - Treinamento LOTO - 2023.pp     tx
NR10 - Treinamento LOTO - 2023.pp tx
 
Apresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPMApresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPM
 
Lista de presença treinamento de EPI NR-06
Lista de presença treinamento de EPI NR-06Lista de presença treinamento de EPI NR-06
Lista de presença treinamento de EPI NR-06
 
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
 
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docxTRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
 
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
 

-Aula 4 - Programacao do 8085.ppt

  • 1. Introdução a Linguagem de Programação 8085 Prof. Dr. Remy Eskinazi DEE – UPE – Escola Politécnica / CEFET-PE remy.eskinazi@gmail.com
  • 2. 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 (28) • 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
  • 3. Linguagem Assembly do 8085 • 246 padrões de bits • 74 instruções (Instruction set) • Formatos da instrução • Binário (difícil para se programar  ) • Hexadecimal (difícil para se programar  ) • Assembly (menos difícil  ) • C (Fácil) • Comprimento da Instrução no 8085 – Até 3 bytes • Opcode (1º byte) RLC – rotaciona acumulador (1 byte) • Operando (2º , 3º byte) CPI – compara valor com acumulador (2 bytes) LXI B, dado16 – (3 bytes) • Declaração em assembly pode ter 4 campos Label Opcode Operando Comentário START: LXI SP, 20FFH ;Inicializa stack pointer Binário: 00111100 Hexadecimal: 3CH Mnemônico: INR A A  A + 1 Binário: 10000000 Hexadecimal: 80H Mnemônico: ADD B B  A + B
  • 4. 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 1. RLC: Rotaciona os bits de A à 00000111 = 07H (RLC) esquerda de uma posição (opcode: 8bits) 2. ADD Reg: Adiciona o conteúdo de 10000 SSS (opcode: 5bits) um registrador ao A (operando: 3bits) 3. ADD B 10000 000 = 80H 4. MOV C,A 01 001 111 = 4F (opcode: 01) DDD SSS (operando: 001 111) D7 D6 D5 D4 D3 D2 D1 D0 Opcode DDD SSS
  • 5. 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)
  • 6. Assembly x Alto Nível • Linguagem de máquina e linguagem Assembly • low-level • Assembly x Linguagens de alto nível • Programas compactos • Requerem menos memória • Maior eficiência • Aplicações de controle: programas pequenos e compactos • Alto nível (C, C++, Processing): Maior portabilidade
  • 7. 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
  • 8. 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
  • 11. Instruções 8085 – Mover Dados • Movimenta (Copia) dados entre registradores e memória • MOV R1,R2, M ;Move • MVI Ri, <dado8> ;Move Immediate • LDA <end16> ;Load Accumulator Directly from Memory • STA <end16> ;Store Accumulator Directly in Memory • LHLD <end16> ;Load H & L Registers Directly from Memory • SHLD <end16> ;Store H & L Registers Directly in Memory
  • 12. Instruções 8085 – Mover Dados • An 'X' in the name of a data transfer instruction implies that it deals with a register pair (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
  • 13. Instruções 8085 – Aritmética • Add, Subtract, Increment / Decrement data in registers or memory. • 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
  • 14. Instruções 8085 – Lógica • This group performs logical (Boolean) operations on data in registers and memory and on condition flags. • These instructions enable you to set specific bits in the accumulator ON or OFF. • ANA Logical AND with Accumulator • ANI Logical AND with Accumulator Using Immediate Data • ORA Logical OR with Accumulator • OR Logical OR with Accumulator Using Immediate Data • XRA Exclusive Logical OR with Accumulator • XRI Exclusive OR Using Immediate Data
  • 15. Instruções 8085 – Lógica • The Compare instructions compare the content of an 8-bit value with the contents of the accumulator; • CMP Compare • CPI Compare Using Immediate Data • The rotate instructions shift the contents of the accumulator one bit position to the left or right: • RLC Rotate Accumulator Left • RRC Rotate Accumulator Right • RAL Rotate Left Through Carry • RAR Rotate Right Through Carry • Complement and carry flag instructions: • CMA Complement Accumulator • CMC Complement Carry Flag • STC Set Carry Flag
  • 16. Instruções 8085 – Lógica • Unconditional branching • – JMP <addr16> Jump – CALL <add16r> Call – RET Return • Conditional branching – JNZ <addr16> Not Zero (Z = 0) – JZ <addr16> Zero (Z = 1) – JNC <addr16> No Carry (C = 0) – JC <addr16> Carry (C = 1) – JPO <addr16> Parity Odd (P = 0) – JPE <addr16> Parity Even (P = 1) – JP <add16r> Plus (S = 0) – JM <addr16> Minus (S = 1)
  • 17. Instruções 8085 – Operações com a pilha • PUSH Push Two bytes of Data onto the Stack • POP Pop Two Bytes of Data off the Stack • XTHL Exchange Top of Stack with H & L • SPHL Move content of H & L to Stack Pointer
  • 18. Instruções 8085 – Operações de E/S • IN <addr8> Input Operation • OUT <addr8> Output Operation
  • 19. Instruções 8085 – Operações de Controle • EI Enable Interrupt System • DI Disable Interrupt System • HLT Halt • NOP No Operation
  • 39. Exemplo Para simulador 8085 -ES ; Diretivas do compilador 8085: ; a diretiva .define associa um valor a um nome a ser usado no programa ; a diretiva .data estabelece valores iniciais em posições da memória. DB significa “Defina Byte” ; a diretiva .org define um endereço inicial para o código que vem a seguir. ORG significa “origin” ; define variáveis .define ; BUFFER 2050H ; nomeia 2050H com nome BUFFER DADO 10101010b ; byte para colocar no buffer COUNT 32 ; byte contador ;Inicializa dados em 2100h .data 2100h V1: DB 200 ; variável global de 1 byte = 200 V2: DB 7,2,5 ; variável global de 3 bytes ;início do programa .ORG 0000H ; inicio MVI A, DADO ; inicializa A com valor LXI H, BUFFER ; inicializa ponteiro de memória MVI B, COUNT ; inicializa contador de laço LOOP: MOV M, A ; armazena DATA na memória INX H ; incrementa ponteiro BUFFER DCR B ; decrementa contador JNZ LOOP ; se não zero (Z=0), repita para o próximo byte HLT