microprocessadores i ele 1078 - feis.unesp.br · grupos de instruções do 8085 ... move dados...
Post on 18-Jan-2019
218 Views
Preview:
TRANSCRIPT
Grupos de Instruções do 8085
As instruções no 8085 são distribuídas em 5 grupos:
1. Grupo de transferência da dados: Move dados entre registradores ou
posição de memória e registradores;
2. Grupo Aritmético: Adição, subtração, Incrementos, decremento;
3. Grupo Lógico: AND, OR, XOR, Comparação, Rotação, Complemento;
4. Grupo de Desvio: Condicionais, Incondicionais, Subrotinas;
5. Grupo de Controle, Pilha, Entrada e Saída.
7.1 - Instruções de Desvios
• São instruções que permitem alterar a seqüência de execução de um programa.
• São a chave para a flexibilidade e a versatilidade de programação dos computadores.
– Incondicionais
– Condicionais (sob certas condições de teste)
• O computador é uma máquina seqüencial:
• Executa sequencialmente os códigos de máquinas armazenados em memórias, uma após outra.
• Instruções de desvios, informam ao microprocessador que a seqüência de execução das instruções é desviada (alterada) para uma nova posição.
• O microprocessador continua executando as instruções sequencialmente a partir dessa nova posição de memória.
7.2 - Instruções de Desvios
As instruções de desvios são classificadas em:
• Instruções de jump;
• Instruções de Chamada (Call) e Retorno (Return);
• Instruções de reinício (Restart).
As instruções Call e Return estão relacionadas com subrotinas.
As instruções Restart estão relacionadas com técnicas de interrupções.
Instruções de Jump
START: IN 21H ; Lê chaves de entradas no porto 21H
OUT 22H ; Aciona dispositivos no porto 22H
JMP START ; Retorna para o início para ler as chaves novamente.
7.3 - Instruções de Desvios
• As instruções de Jump são instruçoes de 3 bytes:
• Um byte para o Opcode seguido de dois bytes de endereçamento de memória.
• O segundo byte é o endereço baixo e o terceiro é o endereço alto.
• Nenhum Flag é afetado
• As instruções de desvios incondicionais simplesmente alteram o fluxo do programa alterando o valor do PC (Contador de Programa).
• As instruções de desvio condicionais examinam o estado (status) de alguns Flags para verificar se o desvio deve ser executado.
Zero
Sinal
Paridade
Carry
• Duas instruções de Jump são associados a cada Flag
(Desvio por flag setado e Desvio por flag zerado).
7.5 - Código de Operação das Instruções de Desvios
• As instruções de Desvios Condicionais gastam diferentes números
de Estados T para serem executadas, dependendo da condição
testada ser verdadeira ou falsa.
• A instrução JC gasta 10 Estados T se a condição for verdadeira
(CY=1) e gasta 7 Estados T se a condição for falsa (CY=0).
7.16 - Elaborar o fluxograma de um programa que lê dois números via teclado,
subtrai o segundo do primeiro e calcula a raiz quadrado do resultado. Se a
subtração gera um número negativo o resultado deve ser zero.
7.18 – Exercício
Elabore um programa que faça a transferência do bloco de memória da
posição 2040H até 2060H para o endereço a partir da posição 2070H.
7.18 – Exercício Elabore um programa que faça a
transferência do bloco de memória da posição 2040H até
2060H para o endereço a partir da posição 2070H.
7.18 – Exercício Elabore um programa que faça a transferência do bloco
de memória da posição 2040H até 2060H para o endereço a partir da
posição 2070H.
7.18 – Exercício Elabore um programa que faça a transferência do bloco de
memória da posição 2040H até 2060H para o endereço a partir da posição
2070H.
7.18 – Exercício Elabore um programa que faça a transferência do bloco
de memória da posição 2040H até 2060H para o endereço a partir da
posição 2070H.
7.18 – Exercício Elabore um programa que faça a transferência do bloco de
memória da posição 2040H até 2060H para o endereço a partir da posição
2070H.
7.19 - Escreva um programa para carregar o acumulador com o valor 64H e
verificar se o byte contido na endereço de memória 2050H é igual ao conteúdo do
acumulador.
Se os valores forem iguais, incremente o acumulador e armazene o seu
valor no endereço 2070H. Se os valores forem diferentes, decremente o conteúdo
do endereço 2050H e armazene o valor do acumulador acrescido de 1 no endereço
2080H.
7.20 - Um conjunto de bytes é armazenado a partir do endereço 2050H.
O final desse grupo de bytes é identificado pelo byte FFH.
Escreva um programa para somar todos os bytes e armazenar o
resultado no endereço de memória 2080H (byte mais significatico) e 2081H
(byte menos significativo).
Exercício 4.
7.21 - Elabore um programa para multiplicar dois números inteiros binários de 8
bits, armazenados nas posições 2080H e 2081H. O resultado deve ser armazenado
a partir da posição 2090H.
Exercício 4.
Elabore um programa para multiplicar dois números inteiros binários de 8 bits, armazenados
nas posições 2080H e 2081H. O resultado deve ser armazenado a partir da posição 2090H.
7.15 - Exemplo de Programa com Instruções de Desvios
• Armazene os números 9BH e A7H nos registradores D e E.
• Adicione o conteúdo desses dois registradores. Se a soma for maior
que FFH, armazene 01H no endereço 2070H, caso contrário
armazena a soma no mesmo endereço.
7.15 - Exemplo de Programa com Instruções de Desvios
Armazene os números 9BH e A7H nos registradores D e E.
Adicione o conteúdo desses dois registradores. Se a soma for maior que
FFH, armazene 01H no endereço 2070H, caso contrário armazena
a soma no mesmo endereço.
1. Carregar os números no acumuladores;
2. Adicionar os números;
3. Verificar a soma (soma > FFH):
4. Se SIM armazene 01 e se não armazene a soma.
5. Fim
7.15 - Exemplo de Programa com Instruções de Desvios
Armazene os números 9BH e A7H nos registradores D e E
respectivamente. Adicione esses números. Se a soma for maior que
FFH, armazene 01H no endereço 2070H, senão armazena a soma
no mesmo endereço.
Carregar os números no acumuladores;
1. Adicionar os números;
2. Verificar a soma (soma > FFH):
4. Se SIM carregue 01 no Acumulador;
5. Armazene o conteúdo do Acumulador;
6. Fim .
Existe Carry?
Se a resposta é não então altere o fluxo do programa, o que equivale
utilizar a instrução JNC.
top related