Академический Документы
Профессиональный Документы
Культура Документы
Tpicos
Conceitos Bsicos e Viso Geral. Arquitetura Bsica 8086/8088 Registradores e Flags do 8086
Registradores de Finalidade Geral. Registradores Apontadores de Pilha. Registradores de Indexao. Registradores de Segmento. Registrador de Flags. Ponteiro de Instruo.
Organizao
Tecnologia de memria Interfaces Implementao das instrues Interconexes
Toda a famlia Intel x86 divide a mesma arquitetura bsica. Isto concede compatibilidade de cdigos. A Organizao diferencia-se entre as diferentes verses.
MICROPROCESSADOR ?
CONCEITOS BSICOS
Unidades Bsicas de um Microprocessador Genrico: Unidade Lgico Aritmtica (ULA): responsvel pela realizao das operaes lgicas e aritmticas. Unidade de Controle (UC): responsvel pela decodificao e execuo das instrues, fornecendo os sinais de temporizao adequados para as diversas partes do processador e do prprio computador. Registradores: memrias internas para armazenamento de informao binria (dados, endereos e instrues).
CONCEITOS BSICOS
Assembly a linguagem que possui instrues diretamente associadas a cdigos da linguagem de mquina, e que permite indicar ao processador as aes a serem realizadas (programa). Exemplo: o cdigo 03h em linguagem de mquina faz com que o processador some um determinado operando com o acumulador, e guarde o resultado no prprio acumulador. J a instruo ADD AX,BX em assembly implementa uma das referidas somas. Barramento um conjunto de condutores por onde trafegam sinais utilizados para efetivar a comunicao entre o processador e um determinado circuito, como uma memria. Se estes sinais forem os prprios pinos, utiliza-se a denominao de barramento local. Ciclo de barramento a sequncia com que so gerados os diversos sinais necessrios para a CPU acessar a memria e os perifricos. Como o 8086 trabalha com barramento sncrono, existe um diagrama de tempo marcando a cadncia desses sinais.
CONCEITOS BSICOS
As CPUS 8086/8088
(1978) (1979)
29.000 transstores
?
mnimo
As CPUs 8086 / 8088 OBSERVAO: OBSERVA No confundir a fila de 6 bytes da BIU com memria cache. Os cdigos que so colocados nessa fila so as instrues (cdigos de operao ou opcodes) que sero opcodes executados pela EU. Os dados nunca so colocados nessa fila.
So 4 registradores de finalidade geral (16 bits) (AX,BX,CX e DX). DX) So 2 registradores apontadores de pilha (16 bits) (SP e BP). BP) So 2 registradores de indexao (16 bits) (SI e DI). DI) So 4 registradores de segmento (16 bits) (CS, DS, SS e ES). ES) H 1 registrador de estado (flags) (16 bits) (PSW). (PSW) E 1 ponteiro de instruo (16 bits) (IP). (IP)
Cada registrador de finalidade geral (AX , BX , CX e DX) pode ser acessado como um registrador de 16 bits ou como dois registradores de 8 bits: AX = AH:AL , BX = BH:BL , CX = CH:CL e DX = DH:DL Todos os registradores de finalidade geral podem ser usados como operandos em operaes lgicas e aritmticas, de 8 ou 16 bits.
AX Acumulador Primrio:
Todas as operaes de I/O so realizadas com o uso auxiliar deste registrador. Operaes que utilizam dados imediatos necessitam de menos memria quando feitas atravs de AX. Algumas operaes com strings e instrues aritmticas pedem o uso deste registrador. Geralmente, usado pelos compiladores para guardar valores retornados de subrotinas.
BX Registrador Base:
o nico registrador de finalidade geral que pode ser utilizado no clculo de endereos de memria. Todas as referncias memria que usam esse registrador no clculo de endereo consideram segmento de dados como padro.
10
CX Contador:
decrementado durante as operaes com loops e strings. Tipicamente, usado para controlar o nmero de repeties de uma instruo antecedida pelo prefixo REP. REP Tambm usado para controlar rotaes e deslocamentos de vrios bits.
11
Operaes podem ser realizadas apenas em partes de 8 bits desses registradores, afetando o conjunto de 16 bits: mov AX, 2155h mov AH, 43h
AX = 2155h AX = 4355h
Operaes que trabalhem apenas com uma parte de 8 bits, no afetaro a outra parte do registrador de 16 bits: mov DX, 21FFh inc DL
DX = 21FFh DX = 2100h
12
BP Ponteiro de Base:
Permite acessar dados alocados na pilha. Tipicamente usado para acessar parmetros que foram passados via pilha para uma determinada subrotina.
13
14
C Carry reflete o vai um do bit mais significativo em operaes aritmticas (8 ou 16 bits). Tambm modificado por algumas instrues de rotao e deslocamento. P Paridade indica a paridade do byte menos significativo do resultado de uma operao. (P=1, nmero par de 1s no byte menos significativo; P=0, caso contrrio).
15
16
D Direo determina se as operaes com strings vo incrementar ou decrementar os registradores de indexao SI e DI (D=1, SI e DI sero decrementados, a string ser acessada de seu endereo mais alto para o mais baixo; D=0, ocorre o contrrio).
17
O Ponteiro de Instruo (IP) e o registrador CS, juntos, Instru so responsveis por marcar o endereo da prxima instruo a ser executada.
Emulando o 8086
registradores
flags
www.emu8086.com
18
Emulando o 8086
www.emu8086.com
Emulando o 8086
www.emu8086.com
19
Modos de Endereamento
Modos de Endereamento
Gerao de endereo fsico Gera endere f Registradores Internos 16 bits Endereo Fsico 20 bits
A gerao do endereo fsico envolve a combinao de um valor offset (desvio ou deslocamento) de 16 bits contido em um registrador ou offset explicitado, com um valor base (seletor) armazenado em um Registrador de Segmento (16 bits). base (SELETOR) + offset = endereo fsico
Tipo de referncia memria
Busca de instruo Operao na pilha Variveis Fonte para string Destino para string BP como registro base BX como registro base
Offset
IP SP * SI DI * *
20
Modos de Endereamento
Gerao de endereo fsico Gera endere f
Deslocamento de 4 bits a esquerda
Seletor:Seletor: XXXX XXXX XXXX 0 0 0 0 XXXX XXXX Offset: End. Fsico: 0 0 0 0 YYYY YYYY YYYY ZZZZ ZZZZ ZZZZ ZZZZ
incio do segmento
Seletor : Offset
Registrador de Segmento Registrador ou Valor
Modos de Endereamento
Gerao de endereo fsico Gera endere f A maioria das variveis (operandos da memria) normalmente est localizada no segmento de dados corrente, embora um programa possa instruir a BIU para acessar uma varivel em qualquer um dos segmentos endereveis. O valor offset de uma varivel na memria calculado pelo EU. Este valor baseado no modo de endereamento especificado pela instruo. O resultado denominado Endereo Efetivo (EA) do operando.
21
Modos de Endereamento
Gerao de endereo fsico Gera endere f
O 8086 pode buscar na memria: 1) INSTRUES h modos de endereamento da INSTRU memria de programa.
Modos de Endereamento
1) Modos de endereamento da memria de programa endere mem
Sempre a busca de instruo feita com CS+IP. Porm, instrues de jump e CS+IP call podem modificar o contedo do IP e/ou CS de trs maneiras: a) Endereamento relativo (programa) Endere Um deslocamento de 8 ou 16 bits, especificado de forma imediata adicionado ao IP (adio binria com sinal); Como no altera CS, o salto intra-segmento (limitado em 64k). intra-
b) Endereamento direto (programa) Endere Os valores de IP ou de IP e CS so especificados na instruo de forma imediata; Esta operao classificada como salto Near ou salto Far. Near altera IP (intrasegmento); (intrasegmento) Far altera IP e CS (intersegmento). (intersegmento) c) Endereamento indireto (programa) Endere O dado na memria interpretado como um endereo para um jump ou call. Pode ocorrer de duas formas: (i) intrasegmento (modifica apenas IP) ou (ii) intersegmento (modifica IP e CS).
22
Modos de Endereamento
1) Modos de endereamento da memria de programa endere mem
Modos de Endereamento
2) Modos de endereamento da memria de dados endere mem Seis modos de endereamento para dados: Imediato, Direto, Indexado, Implicado, Relativo Base ou Pilha. a) Endereamento imediato Nesta forma de endereamento, os operandos esto definidos nos bytes seguintes ao cdigo da operao. O dado a ser operado obtido do segmento de cdigo.
23
Modos de Endereamento
2) Modos de endereamento da memria de dados endere mem b) Endereamento direto Os dois bytes que se seguem ao cdigo da instruo constituem o offset do endereo (o seletor DS) fsico do dado a ser acessado.
O valor do operando est armazenado no endereo de memria cujo offset est entre colchetes yyzz h
Modos de Endereamento
2) Modos de endereamento da memria de dados endere mem c) Endereamento direto, indexado obtido com o uso de SI (no segmento de dados) ou DI (no segmento extra) como Indexador.
d) Endereamento Implicado Este modo uma degenerao do anterior. obtido quando no se especifica qualquer deslocamento.
24
Modos de Endereamento
2) Modos de endereamento da memria de dados endere mem e) Endereamento relativo base Neste modo, utilizado um registrador (BX) para fornecer todos os modos de endereamento j descritos, com exceo do imediato. De forma simplificada, basta somar BX aos modos anteriores. Usa-se DS como registrador de segmento. Exemplos:
Modos de Endereamento
2) Modos de endereamento da memria de dados endere mem e) Endereamento relativo base Exemplos:
25
Modos de Endereamento
2) Modos de endereamento da memria de dados endere mem f) Endereamento relativo pilha Todos os endereamentos relativos base tambm servem para a pilha, basta substituir BX por BP e, com isso, usa-se SS como segmento. Exemplos:
Modos de Endereamento
2) Modos de endereamento da memria de dados endere mem Selecione view
26
Modos de Endereamento
2) Modos de endereamento da memria de dados endere mem Selecione view Selecione memory
Modos de Endereamento
2) Modos de endereamento da memria de dados endere mem Selecione view Selecione memory
EXERCCIO PARA CASA: Localize na memria dados armazenados com EXERC os modos de endereamento comentados.
27
SELEO DOS MODOS DE FUNCIONAMENTO: SELE Modo mnimo (MN /*MX = 1); Modo mximo (MN /*MX = 0); No modo multiprocessamento existe uma lgica interna para gerenciar as prioridades de acesso ao barramento. Cada CPU pode ter sua prpria memria e/ou compartilhar memria com outras CPUs.
28
mnimo
29
EXEMPLO:
30
31
Projeto Mximo
Modo Mximo
PROJETO NO MODO MXIMO: M O modo mximo usado para sistemas multiprocessados ou coprocessado. Neste modo, utiliza-se o controlador de barramento 8288:
1. O estado da fila interna informado por QS0 e QS1 outros processadores podem saber o estado de execuo da CPU. 2. O estado do barramento obtido atravs de *S0, *S1 e *S2. 3. Existe o mecanismo de lock do barramento para controlar recursos compartilhados. 4.
*RQ/*GT0 e *RQ/*GT1 permitem diversas CPUs compartilharem o mesmo barramento.
32
Projeto Mnimo
Modo Mnimo
PROJETO NO MODO MNIMO: M 1 Mb de memria. 64 k de I/O ( sinais A16 A19 mantidos baixos em ciclos de I/O).
33
CICLOS DE BARRAMENTO
Um processador realiza ciclos de barramento sempre que for memria buscar cdigos de instrues para executar. Neste caso o ciclo ser de LEITURA. Outra situao onde tambm so gerados ciclos de barramento: quando uma varivel for acessada na memria, para consulta ou atualizao. i = j ; em C mov reg, [ j ] ; em assembly mov [ i ], reg reg representa um registrador interno da CPU.
Ciclo de barramento a sequncia com que so gerados os diversos sinais necessrios para a CPU acessar a memria e os perifricos. Como o 8086 trabalha com barramento sncrono, existe um diagrama de tempo marcando a cadncia desses sinais.
34
CICLOS DE BARRAMENTO
35
O grande problema que os programas operam, na grande maioria das vezes, com bytes.
?
36
37
38
39
Programando o 8086
O SEGMENTO DE PILHA fundamental para os compiladores implementarem SUBROTINAS. Este segmento de memria, alm SUBROTINAS de armazenar o endereo de retorno, responsvel por receber endere retorno os parmetros a serem manuseados pela subrotina, que so passados pelo procedimento que a chamou.
40
1a. instruo da subrotina instru instruo da subrotina instru instruo da subrotina instru instruo de retorno instru
Deseja-se que a SUBROTINA retorne a soma dos dois parmetros acrescida de uma unidade.
41
42
43
Bibliografia Bsica
Zelenovsky, Ricardo e Mendona, Alexandre, PC um guia prtico de Hardware e Interfaceamento, MZ Editora Ltda, 4a. edio, 2006. (http://www.mzeditora.com.br/) Brey, Barry, The Intel Microprocessors - 8086/88, 286, 386 and 486 - Architecture, Programming and Interfacing, Third Edition, PHI, 1994. Stallings, William. Arquitetura e Organizao de Computadores, Pearson, 8a. Edio, 2010.
Material da Disciplina
http://www.dee.ufc.br/~arthurp
44