A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Arquitetura dos Microprocessadores 8086 e 8088 Sistemas Embarcados.

Apresentações semelhantes


Apresentação em tema: "Arquitetura dos Microprocessadores 8086 e 8088 Sistemas Embarcados."— Transcrição da apresentação:

1 Arquitetura dos Microprocessadores 8086 e 8088 Sistemas Embarcados

2 Conjunto de Instruções As instruções consideram diferentes tipos de operandos (registrador, memória e imediato) Cada instrução pode operar a nível de byte ou de palavra As instruções são bem específicas: Existem 28 variações da instrução MOV Existem 6 tipos de instruções: 1.Instruções de transferência de dados 2.Instruções Aritméticas 3.Instruções de manipulação de bits 4.Instruções de string 5.Instruções de transferência de programa 6.Instruções de controle de processador

3 Instruções de Transferência de Dados São 18 instruções Usadas para mover bytes e palavra entre memória e registradores Também são usadas para mover bytes e palavras entre os registradores AL ou AX, respectivamente, e as portas de entrada/saída Existem 4 tipos de transferência de dados: – Propósito geral – Entrada/saída – Objeto de endereço e frame de pilha – Transferência de flag

4 Instruções de Transferência de Dados

5 Instruções Aritméticas Operam sobre 4 tipos de números: – Unsigned binary; – Signed binary; – Unsigned packed decimal; – Unsigned unpacked decimal. Interpretação aritmética segundo o tipo do número

6 Instruções Aritméticas O processador assume que os operandos são números válidos Dados inválidos podem produzir resultados errôneos A unidade de execução analisa os resultados da operação, ajustando os flags de status

7 Instruções de Manipulação de Bit São três grupos distintos para manipulação de bits em um byte ou word, a saber: – Lógico; – Deslocamentos; – Rotações.

8 Instruções de Manipulação de Bit

9 Instruções de String

10 Podem ter um operando de fonte, um operando de destino, ou ambos; O hardware assume que uma string de fonte reside no seguimento de dados corrente; Uma string de destino deve estar no segmento extra; O Assembler usa o conteúdo dos registradores SI e DI como offset para endereçar elemento corrente da fonte ou no destino, respectivamente;

11 Instruções de String Instruções de string causam a atualização automática dos registradores SI e/ou DI antes de processar a próxima string; O flag DF determina se SI e/ou DI são auto- incrementados (DF=0) ou auto-decrementados (DF=1); O incremento/decremento pode ser feito manualmente ajustando CX adequadamente.

12 Instruções de Transferência de Programa O conteúdo dos registradores CS e IP determinam a sequência de execução de instrução, base e offset respectivamente; Em geral, a instrução é buscada e colocada na fila de instrução da CPU; Existem 4 grupos de instruções de transferência de programa, a saber: -Transferência incondicional; -Transferência condicional; -Para controle de interação; -Relacionadas a interrupções.

13 Instruções de Transferência de Programa Obs: A instrução JMP é de longo alcance!

14 Instruções de Transferência de Programa (Condicional) Obs: Essas instruções são de curto alcance, de -128 a +127 bytes

15 Instruções de Transferência de Programa

16 Instruções de Controle de Processador São instruções que permitem o controle de funções de CPU, tais como: a)Atualização de flags; b)Sincronização externa; c)Inoperante.

17 Instruções de Controle de Processador Processor Status Word (PSW)

18 Instruções de Controle de Processador

19 Modos de Endereçamento Os operandos podem estar contidos em: Registradores; Instruções; Memória; Portas de entrada/saída. Memória e portas de entrada/saída podem ser endereçadas de muitas formas, aumentando a flexibilidade das instruções

20 Endereçamento de registrador Endereçamento de registrador é, normalmente, a forma mais rápida e compacta: a codificação do registrador na instrução é feita utilizando poucos bits; não é necessário acessar o barramento (operação interna à CPU). Os registradores podem ser usados como operandos fonte e/ou destino

21 Endereçamento Imediato Endereçamento imediato são dados constantes contidos na instrução Dados imediatos podem ter 8 ou 16 bits Dados imediatos estão disponíveis na fila de instrução, podendo ser acessados rapidamente O endereçamento imediato também elimina a necessidade de acesso ao barramento Operandos imediatos podem ser somente fonte e devem ser constantes

22 Endereçamento de Memória Operandos de memória devem ser transferidos de ou para a CPU através de barramentos Quando a EU necessita ler ou escrever na memória, então ela deve passar um valor de offset (endereço efetivo) para a BIU Logo, um ou mais ciclos e barramento são necessários A EU pode calcular o endereço efetivos de várias formas, de acordo com a codificação da informação no segundo byte da instrução

23 Endereçamento de Memória O deslocamento é um valor constante O conteúdo dos registradores de base e de índice podem mudar, permitindo uma mesma função acessar diferentes partes da memória

24 Endereçamento de Memória – Endereçamento Direto No endereçamento direto de memória apenas o deslocamento compõe o endereço efetivo É o modo de endereçamento mais simples É muito utilizado para acesso de variáveis escalares

25 Endereçamento de Memória – Endereçamento Indireto No endereçamento indireto, o endereço efetivo é formado a partir do conteúdo armazenada em um registrador de base ou de índice Registradores de uso geral podem ser usados para endereçamento indireto com as instruções JMP ou CALL

26 Endereçamento de Memória – Endereçamento de Base No endereçamento de base, o endereço efetivo é formado a partir da soma de um deslocamento e o conteúdo armazenada em BX ou BP BP força a BIU a obter o operando do segmento de pilha corrente É usado para acessar estruturas de dados, onde o registrador aponta para a estrutura, enquanto que o deslocamento permite o acesso a elementos da estrutura Diferentes copias de uma estrutura podem ser acessadas alterando o valor do registrador de base

27 Endereçamento de Memória – Acesso a uma Estrutura de Dados Utilizando Endereçamento de Base

28 Endereçamento de Memória – Endereçamento Indexado No endereçamento de base, o endereço efetivo é formado a partir da soma de um deslocamento e o conteúdo armazenada em DI ou SI É sempre usado para acessar elementos em um vetor, onde o deslocamento aponta para o início do vetor enquanto que o conteúdo do registrador de índice aponta os elementos do vetor

29 Endereçamento de Memória – Endereçamento Indexado de Base No endereçamento indexado de base, o endereço efetivo é formado a partir da soma de um deslocamento, do conteúdo armazenada em DI ou SI, além do conteúdo armazenado em BX ou BP Base e índice podem ser determinados em tempo de execução, o que faz com que este modo de endereçamento de memória seja muito flexível É uma forma conveniente de acessa a vetor em uma pilha, onde BP aponta para o topo da pilha, o deslocamento aponta para o início do vetor e o registrador de índice (DI ou SI) aponta para o elemento do vetor

30 Endereçamento de Memória – Acessando um Vetor na Pilha através de Endereçamento Indexado de Base

31 Endereçamento de Memória – Instruções de String Não usam modos de endereçamento de memória normal, pois os registradores de índice são implicitamente considerados Na instrução de string, SI aponta para o primeiro byte ou word da string fonte, enquanto que DI aponta para o primeiro byte ou word da string de destino A CPU ajusta SI e DI automaticamente, a fim de obter bytes ou words subsequentes O registrador DS é o registrador de segmento padrão para o registrador SI, enquanto que ES é o registrador de segmento padrão para o DI

32 Endereçamento de Porta de Entrada/Saída Qualquer modo de endereçamento de memória pode ser usado para acessar uma porta de entrada/saída, desde que a porta esteja mapeada na memória Dois modos de endereçamento podem ser usados para acessar portas localizadas no espaço de entrada e saída, a saber: -Endereçamento de porta direto; -Endereçamento de porta indireto.

33 Endereçamento de Porta de Entrada/Saída Direto Para o endereçamento de porta direto, o número da porta é um operando imediato de 8 bits, permitindo acessar portas de 0 a 255

34 Endereçamento de Porta de Entrada/Saída Direto O endereçamento de porta indireto é similar ao endereçamento indireto de memória. Neste caso, DX contém o número da porta, permitindo acessar da porta 0 à

35 Tipo de Dados

36


Carregar ppt "Arquitetura dos Microprocessadores 8086 e 8088 Sistemas Embarcados."

Apresentações semelhantes


Anúncios Google