Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Fluxograma e Instruções de Desvio no Microprocessador 8085-A, Provas de Engenharia Elétrica

Um experimento que utiliza fluxogramas e instruções de desvio no microprocessador 8085-a. O objetivo é estruturar programas complexos e aprender a alterar a sequência de execução de um programa com desvios condicionais e incondicionais. O documento inclui fluxogramas e simulações de dois programas em assembly.

Tipologia: Provas

2012

Compartilhado em 28/06/2012

jhonathan-willian-7
jhonathan-willian-7 🇧🇷

4.8

(4)

25 documentos

1 / 17

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Faculdade de Engenharia de Ilha Solteira
Departamento de Engenharia Elétrica
ELE 1078 Microprocessadores I
EXPERIÊNCIA 03
Fluxograma e Instruções de Desvio do 8085-A
Nome do Aluno: Jhonathan Willian Souza da Silva
RA: 201014131
- 06 de Maio de 2012 -
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff

Pré-visualização parcial do texto

Baixe Fluxograma e Instruções de Desvio no Microprocessador 8085-A e outras Provas em PDF para Engenharia Elétrica, somente na Docsity!

UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”

Faculdade de Engenharia de Ilha Solteira

Departamento de Engenharia Elétrica

ELE 1078 – Microprocessadores I

EXPERIÊNCIA 03

Fluxograma e Instruções de Desvio do 8085-A

Nome do Aluno: Jhonathan Willian Souza da Silva

RA: 201014131

- 06 de Maio de 2012 -

Sumário

    1. Introdução ............................................................................................................................
    1. Procedimento Experimental .................................................................................................
    1. Conclusão ...........................................................................................................................
    1. Referências Bibliográficas..................................................................................................

2. Procedimento Experimental

O objetivo deste experimento é estruturar programas complexos com fluxograma e utilizar

as instruções de desvio.

Primeiramente deveríamos elaborar um programa para transferir um bloco de memória da posição 2040H até 2060H para o endereço a partir da posição 2070H.

Utilizando o programa Diagram Designer foi feito o Fluxograma.

Figura 2 - Fluxograma do Programa 1

A Tabela abaixo apresenta o programa 1.

Tabela 1 - Programa 1

Endereço Hexa Mnemônico Comentário

2000H

LXI

D,2040H

Carrega o par de registradores DE com os bytes especificados.

2003H 01 70 20 LXI B,2070h^ Carrega o par de registradores BC com os bytes especificados.

2006 H 1A LDAX D O Byte armazenado na memória endereçado pelo par DE é copiado para o Acumulador.

2007H 02 STAX B

Copia o conteúdo do Acumulador para a posição de memória endereçada pelo par de registradores BC.

2008H 13 INX D Adiciona 1 ao conteúdo do par de registradores DE.

2009H 03 INX B Adiciona 1 ao conteúdo do par de registradores BC.

200AH 7B MOV A, E Copia o conteúdo do registrador E para o Acumulador.

200BH FE 61 CPI 61H Compara o byte especificado com o conteúdo do Acumulador. Flags alteradas: (Z, CY).

200DH C2 06 20 JNZ 2006H

Testa a condição da Flag Z. Se verdadeira, desvia o fluxo do programa para o endereço especificado. (Verdade se Z = 0).

2010H 76 HLT Suspende o processamento.

Em seguida, um programa que converta um valor hexadecimal qualquer de 8 bits

em seu equivalente decimal.

Figura 4 - Fluxograma Programa 2

Abaixo está o programa 2 codificado em Assembly.

Tabela 2 - Programa 2

Endereço Hexa Mnemônico Comentário

2000H 31 B

LXI

SP,20B0H

Carrega o registrador SP (SPH e SPL) com os bytes especificados.

2003H 21 60 20

LXI

H,2060H

Carrega o par de registradores HL com os bytes especificados.

2006H 7E MOV A, M Copia o conteúdo da posição de memória endereçada pelo par HL para o Acumulador.

2007H CD 0D 20

CALL

200DH

Chama a sub-rotina no endereço especificado e salva na pilha 2 bytes referentes ao endereço de retorno. O apontador de pilha é decrementado de dois. 200AH 76 HLT Suspende o processamento.

200BH 00 NOP Não executa nenhuma operação.

200CH 00 NOP Não executa nenhuma operação.

200DH 21 61

LXI

H,2061H

Carrega o par de registradores HL com os bytes especificados.

2010H 06 64 MVI B,64H Copia o dado especificado pelo segundo byte da instrução para o registrador B.

2012H CD 1D 20

CALL

201DH

Chama a sub-rotina no endereço especificado e salva na pilha 2 bytes referentes ao endereço de retorno. O apontador de pilha é decrementado de dois. 2015H 06 0A MVI B,0AH Copia o dado especificado pelo segundo byte da instrução para o registrador B.

2017H CD 1D 20

CALL

201DH

Chama a sub-rotina no endereço especificado e salva na pilha 2 bytes referentes ao endereço de retorno. O apontador de pilha é decrementado de dois. 201AH 77 MOV M, A Copia o conteúdo do Acumulador para a posição de memória endereçada pelo par HL.

201BH C9 RET Retorno da sub-rotina. Retira da pilha 2 bytes colocando- os no PC.

201CH 00 NOP Não executa nenhuma operação.

201DH 36 FF MVI M,FFH Copia o dado especificado pelo segundo byte da instrução para a memória endereçada pelo par HL.

201FH 34 INR M Adiciona 1 ao conteúdo da memória endereçada pelo par HL. Flags alteradas (S Z AC P).

O Programa 3 deveria multiplicar dois números inteiros binários de 8 bits.

Figura 6 - Fluxograma do Programa 3

O programa do fluxograma codificado em Assembly é representado pela tabela abaixo.

Tabela 3 - Programa 3

Endereço Hexa Mnemônico Comentário

2000H 3A 81

LDA 2081H Copia para o Acumulador o conteúdo da memória cujo endereço é especificado.

2003H FE 00 CPI 00H Compara o byte especificado com o conteúdo do Acumulador. Flags alteradas: (Z, CY).

2005H CA 2B 20

JZ 202BH Testa a condição da Flag Z. Se verdadeira, desvia o^ fluxo do programa para o endereço especificado. (Verdade se Z = 1). 2008H 47 MOV B, A Copia o conteúdo do Acumulador para o registrador B.

2009H 3A 80

LDA 2080H Copia para o Acumulador o conteúdo da memória cujo endereço é especificado.

200CH 67 MOV H, A Copia o conteúdo do Acumulador para o registrador H.

200DH FE 00 CPI 00H Compara o byte especificado com o conteúdo do Acumulador. Flags alteradas: (Z, CY).

200FH CA 2B 20

JZ 202BH Testa a condição da Flag Z. Se verdadeira, desvia o fluxo do programa para o endereço especificado. (Verdade se Z = 1). 2012H 11 00 00

LXI

D,0000H

Carrega o par de registradores DE com os bytes especificados.

2015H 0E 00 MVI C,00H Copia o dado especificado pelo segundo byte da instrução para o registrador C.

2017H 7C MOV A, H Copia o conteúdo do registrador H para o Acumulador.

2018H 82 ADD D Adiciona o conteúdo do registrador D ao conteúdo do Acumulador. O resultado fica no Acumulador. Flags alteradas (S Z AC P CY). 2019H 57 MOV D, A Copia o conteúdo do Acumulador para o registrador D.

201AH 32 83

STA 2083H Copia o conteúdo do Acumulador para o endereço de memória especificado.

201DH 3E 00 MVI A,00H Copia o dado especificado pelo segundo byte da instrução para o Acumulador.

201FH 8B ADC E Adiciona o conteúdo do registrador E e o bit de carry (CY) ao conteúdo do Acumulador. O resultado fica no Acumulador. Flags alteradas (S Z AC P CY). 2020H 5F MOV E, A Copia o conteúdo do Acumulador para o registrador E.

O ultimo programa é para dividir dois números de 8 bits.

Figura 8 - Fluxograma do Programa 4

O programa está representado abaixo.

Tabela 4- Programa 4

Endereço Hexa Mnemônico Comentário

2000H 3A 91 20 LDA 2091H Copia para o Acumulador o conteúdo da memória cujo endereço é especificado.

2003H 47 MOV B, A Copia o conteúdo do Acumulador para o registrador B.

2004H 3A 90

LDA 2090H Copia para o Acumulador o conteúdo da memória cujo endereço é especificado.

2007H FE 00 CPI 00H

Compara o byte especificado com o conteúdo do Acumulador. Flags alteradas: (Z, CY).

2009H CA 1F

JZ 201FH

Testa a condição da Flag Z. Se verdadeira, desvia o fluxo do programa para o endereço especificado. (Verdade se Z = 1).

200CH 0E 00 MVI C,00H Copia o dado especificado pelo segundo byte da instrução para o registrador C.

200EH 90 SUB B

Subtrai do Acumulador o conteúdo do registrador B. O resultado fica no Acumulador. Flags Alteradas (S Z AC P CY).

200FH

DA 16

20 JC 2016H

Testa a condição da Flag CY. Se verdadeira, desvia o fluxo do programa para o endereço especificado. (Verdade se CY = 1).

2012H 0C INR C Adiciona 1 ao conteúdo do registrador C. Flags alteradas (S Z AC P).

2013H

C3 0E

20 JMP 200EH^ Desvia o fluxo do programa para o endereço especificado.

2016H 80 ADD B

Adiciona o conteúdo do registrador B ao conteúdo do Acumulador. O resultado fica no Acumulador. Flags alteradas (S Z AC P CY).

2017H 32 93 20 STA 2093H Copia o conteúdo do Acumulador para o endereço de memória especificado.

3. Conclusão

Utilizando Fluxogramas, montamos os programas pedidos no experimento e

logo em seguida transferimos para a linguagem Assembly.

As instruções de desvios foram utilizadas em todas as etapas, e percebemos a

grande utilidade destas instruções na elaboração de programas mais complexos.

4. Referências Bibliográficas

[1] Silva, Alexandre. C.R, Experiência 3- Fluxograma e Instruções de Desvio do

8085A. 2012

[2] Apostila de Microprocessadores I, Aulas 7,8 e 9 – Fluxogramas e Instruções de

Desvio. LPSSD. 2012