Arquitetura dos Microprocessadores 8086 e 8088

Slides:



Advertisements
Apresentações semelhantes
Parte 1: Organização de Computadores
Advertisements

Capitulo 6: Entrada e Saída
CPU: Controle e processamento
Arquitetura de Computadores
Arquitetura e organização de computadores
Execução de Programas Partes de um programa: ‣ Dados
Entrada e Saída Introdução.
Técnicas para operações E/S
Autor: Salvador P. Gimenez
SOFTWARE BÁSICO.
Software Básico Silvio Fernandes
Chip-Select e Controle de Interrupção
Sistemas Embarcados Microcontroladores PIC
Unidade de Controle do 8086/8088
Chip-Select e Controle de Interrupção Sistemas Embarcados.
Sistemas Digitais Projeto RTL – Unidade de Execução
Arquitetura dos Microprocessadores 8086 e 8088
Unidades de Execução e de Controle Sistemas Digitais.
Arquitetura dos Microprocessadores 8086 e 8088 Sistemas Embarcados.
ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM
Sistemas Operacionais
Introdução à Informática
O MICROPROCESSADOR INTEL 8080
Professor: Carlos Roberto da Silva Filho, M. Eng.
REPRESENTAÇÃO DE INSTRUÇÕES
Modos de endereçamento
Processadores – Aula 3 Professor: André Luis Meneses Silva
Processadores – Aula 3 Professor: André Luis Meneses Silva
Sistemas Operacionais I
Linguagem de Montagem.
Representação de Instruções
Sistemas Operacionais
João Ferreira, Dez 2003STRINGS, 1/6 Definição de String String (sentido lato) -> um string é um conjunto de valores (não necessariamente interpretáveis.
UCP Memória Principal Controladores E/S
ORGANIZAÇÃO DE COMPUTADORES
Organização de um computador
Prática de Programação Assembly 8086
Organização e Arquitetura de Computadores
Organização e Arquitetura de Computadores
Agenda - Aula 2 Introdução (Computador Digital) Processadores
Agenda Modos de Endereçamento.
Processamento de dados na UCP e memória UCP
Unidade Central De Processamento: Processador
Software Básico Nível ISA Capítulo 5 Mitsuo Takaki
Unidade Central De Processamento: Processador
ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM
Técnico em Informática
Arquitetura de Computadores
DCC 001 Programação de Computadores 2o Semestre de 2011
Unidade de Controle.
8088 Assembly Software Básico Mitsuo Takaki.
Registradores.
8 - 1 Organização Básica de Computadores e Linguagem de Montagem Ricardo Pannain ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM A pilha e subrotinas.
Parte 3 Seção de Dados e Unidade de Controle
Curso: Sistemas de Informação Tópico 5
Organização Básica de Computadores e Linguagem de Montagem Ricardo Pannain ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM Arrays e modos.
1. Introdução O processador é o componente vital do sistema de computação, responsável pela realização das operações de processamento (os cálculos matemáticos.
Introdução à Computação Componentes Básicos dos Computadores
O que devem fazer os Microprocessadores ?
Afonso Ferreira Miguel
Arquitetura de Microcomputadores
Arquitetura de computadores
ARQUITETURA DE COMPUTADORES Nível do Conjunto de Instruções
A linguagem de Máquina – Instruções Básicas
Arquitetura do ARM RISC (Reduced Instruction Set Computer) – Conjunto relativamente grande de registradores – Modelo “load/store “de processamento Operações.
Sistemas Operacionais Arquitetura de Computadores
Pet computação UFPE Arquitetura Von Neumann. pet computação UFPE 1.Definição e tipos de arquitetura Quando falamos em arquitetura temos dois tipos a considerar:
Modos de Endereçamento da família MC8051
Ney Laert Vilar Calazans Exemplo de Apresentação de TP1 Descrição Resumida de uma Arquitetura de Processador: o estudo de caso do Intel 8086 ORGANIZAÇÃO.
 Todo processador é constituído de circuitos capazes de realizar algumas operações primitivas:  Somar e subtrair  Mover um dado de um local de armazenamento.
Transcrição da apresentação:

Arquitetura dos Microprocessadores 8086 e 8088 Sistemas Embarcados

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: Instruções de transferência de dados Instruções Aritméticas Instruções de manipulação de bits Instruções de string Instruções de transferência de programa Instruções de controle de processador

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

Instruções de Transferência de Dados

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

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

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.

Instruções de Manipulação de Bit

Instruções de String

Instruções de String 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;

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.

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.

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

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

Instruções de Transferência de Programa

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

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

Instruções de Controle de Processador

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

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

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

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

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

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

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

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

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

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

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

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

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

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.

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

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 à 65535.

Tipo de Dados

Tipo de Dados