Buscar

teoria-lab-03-micro1

Prévia do material em texto

Faculdade de Engenharia de Ilha Solteira – Departamento de Engenharia Elétrica 
ELE 1078 - Microprocessadores I 
 
 22
3 - Fluxograma e Instruções de Desvio do 8085 
 
É um tipo de diagrama de blocos, com visualização através de símbolos específicos, utilizado na 
estruturação de programas complexos. O uso de um fluxograma facilita a tarefa do programador e permite 
a identificação, de maneira rápida, da função de um determinado programa. Sua elaboração deve ser, na 
media do possível, independente da linguagem de programação. A seguir são apresentados os principais 
símbolos utilizados na elaboração de fluxogramas. 
 
 Representa o início, fim ou 
 interrupção de um programa 
 
 Resolução de um problema, 
 tarefa ou processamento 
 
 
 Ponto de teste ou tomada de decisão 
 (desvios) 
 
 
 
 Tarefa ou processamento 
 repetitivo (subrotina) 
 
 Entrada de dados via teclado 
 
 
 Entrada/Saída genérica 
 
 
 
 
 Saída via impressora 
 
 
 
 
 Ligação com outra parte do 
 fluxograma 1 
 
Os símbolos apresentados são suficientes para a elaboração de fluxogramas dentro dos 
objetivos do curso. Entretanto, deve-se verificar com mais atenção a elaboração de relatórios 
técnicos e/ou científicos. 
Para se ter uma idéia do uso de fluxogramas, considere o exemplo seguinte: 
Exemplo: Elaborar o fluxograma de um programa que lê dois números via teclado, subtrai o 
segundo do primeiro e calcula a raiz quadrada do resultado. Se a subtração gerar um número 
negativo o resultado deve ser zero. 
 
Faculdade de Engenharia de Ilha Solteira – Departamento de Engenharia Elétrica 
ELE 1078 - Microprocessadores I 
 
 12
 
 
 
NÃO 
R >= ZERO ? 
R = sqrt(R) 
SIM 
FIM 
 
R= 0 
Início Lê dois números 
(A e B) 
Início 
 (R = A - B) 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 O blocos de comparação/teste são implementados através de instruções de comparação 
em conjunto com instruções de saltos condicionais. Há também a possibilidade de desvios 
usando instruções de chamada de subrotinas (“CALL”). 
 
3.1 – Instruções de Desvio (Salto) do 8085 
 
53 - JMP endereço → Desvio incondicional do programa para o endereço especificado. 
(PC) ← endereço (Exemplo: JMP 2050h) 
 
J xx endereço → Desvia o fluxo do programa do programa para o endereço especificado de 
acordo com os flags, definindo assim um desvio CONDICIONADO. 
Se a condição especificada é verdadeira, o PC é carregado com o endereço especificado. Em 
caso contrário, o programa continua com a execução da próxima instrução (após Jxx). 
 
As condições que podem ser especificadas definem as seguintes instruções de salto no 8085: 
 
54 - JNZ endereço→ Desvia se o flag Z = 0 (resultado não-nulo no acumulador). 
55 - JZ endereço → Desvia se o flag Z = 1 (resultado NULO no acumulador). 
56 - JNC endereço → Desvia se o flag CY = 0 (não houve carry – resultado de 8 bits) 
57 - JC endereço → Desvia se o flag CY =1 (carry → mais de 8 bits - OVERFLOW) 
58 - JPO endereço → Desvia se o flag P= 0 (Paridade ímpar – Número de “1” ímpar). 
59 - JPE endereço → Desvia se o flag P =1 (Paridade Par – Número de “1” PAR). 
Faculdade de Engenharia de Ilha Solteira – Departamento de Engenharia Elétrica 
ELE 1078 - Microprocessadores I 
 
 13
60 - JP endereço → Desvia se o o flag S = 0 (resultado com bit7=0). 
61 - JM endereço → Desvia se o flag S = 1 ( resultado com bit7 =1). 
 
Outra instrução que permite desvio é: 
 
62 - PCHL → Transfere o conteúdo do par HL para o PC: 
PC ← (HL) , ou seja, PCH ← (H) e PCL ← (L) 
O conteúdo do registrador H é movido para os oito bits mais significativos do PC e o conteúdo 
do registrador L é movido para os oito bits menos significativos PC. 
 
C – Estrutura de um Programa em Linguagem Assembly 
 A linguagem “assembly” permite a substituição dos códigos de máquina por 
“mnemônicos”, mas não é tudo. Os compiladores de linguagem “assembly” permitem a 
elaboração de programas bem estruturados, inclusive com o uso de comentários. De maneira 
simplificada, os campos básicos da linguagem “assembly” podem ser visualizados no exemplo 
seguinte: 
 
Endereço (H) Label Instrução Operando Op. Code Comentário 
2000 INICIO: LXI H, 2050 21 50 20 Carrega HL com 2050 
2003 MVI A, 00 3E 00 Carrega A com ZERO 
2005 CARREGA: MOV B, M 46 Carrega B com [(HL)] 
2006 ADD B 80 Soma A com B 
2007 MOV M, A 77 Salva A em [(HL)] 
2008 JNC CARREGA D2 05 20 Desvia se CY=0; 
200B FIM: RST 1 CF Fim do programa 
 
No exemplo anterior dois pontos são destacados: primeiro, não há necessidade da 
definição dos endereços de retorno (Ex. CARREGA), pois o compilador os armazena 
automaticamente; segundo, pode-se adicionar comentário linha a linha, facilitando a 
documentação do programa. Outras facilidades existem nos modernos compiladores “assembly”, 
como a definição do endereço inicial, a criação de tabelas indexadas, etc. 
 
 
 
	3 - Fluxograma e Instruções de Desvio do 8085

Continue navegando