Escolar Documentos
Profissional Documentos
Cultura Documentos
Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Engenharia Eltrica
Introduo
8086 Microprocessador de 16 bits Barramento de dados de 16 bits Barramento de endereos de 20 bits 8088 Microprocessador de 8/16 bits Barramento de dados de 8 bits Barramento de endereos de 20 bits 8086 e 8088 arquitetura interna semelhantes, com interfaces com o barramento diferentes 8087
Copyright (c) Walter Fetter Lages p.2
Pinagem
Modo mnimo Processador gera todos os sinais de controle do barramento No permite o uso de coprocessador Modo mximo Alguns sinais de controle do barramento so gerados pelo 8288 Permite o uso de coprocessador
Diagrama Funcional
Unidade de Execuo
Registradores
Registradores de 8 bits AL, AH, BL, BH, CL, CH, DL, DH Registradores de 16 bits AX=AH:AL BX=BH:BL CX=CH:CL DX=DH:DL SI, DI, BP SP IP Flags CS, DS, SS, ES
Ponteiro de instrues: IP Ponteiro de pilha: SP Flags Segmento de cdigo: CS Segmento de dados: DS Segmento de pilha: SS Segmento extra: ES
Quase todas as instrues do 8086/8088 so simtricas em relao aos registradores Alguns registradores possuem usos preferenciais Acumulador: AL ou AX Base: BL, BX ou BP Contador: CL ou CX Dados: DL ou DX ndice de fonte: SI ndice de destino: DI
Flags
Carry: CF Paridade: PF Carry Auxiliar: AF Zero: ZF Sinal: SF Trap: TF Interrupo: IF Direo: DF Overow: OF
Copyright (c) Walter Fetter Lages p.14
Registradores de Segmento
Dependendo do tipo de acesso memria utilizado um registrador de segmento CS: busca de instrues DS: acesso dados na memria SS: acesso pilha endereamento indireto por SP ou BP ES: destino de operaes de string As instrues podem utilizar um prexo para utilizar um segmento diferente do default
Organizao da Memria
Relocao
Em sistemas multitarefa, cada tarefa ter um endereo inicial diferente. Como o programador/compilador/linker saber o endereo inicial (e endereos de subrotinas, dados, etc...) da tarefa? Problema da relocao Gerar apenas cdigo com endereos relativos Cdigo relocvel Relocao durante a carga da tarefa na memria
Segmentao
Associa-se a cada rea de memria um valor de base e um valor de limite base=endereo inicial limite=endereo mximo ou tamanho Todas as tarefas so codicadas assumindo que a sua rea de memria comea em 0 Quando a tarefa selecionada para executar, base e limite so carregados pelo sistema operacional em registradores especiais na CPU
Segmentao
Endereo fsico = offset + base Soma feita por hardware a cada acesso memria Endereos so vericados quanto ao limite Uma tarefa no pode acessar a rea das outras
Segmentao
O seletor e descritor de segmento so controlados pelo sistema operacional O offset controlado pelo programa de aplicao Proteo Usualmente o descritor de segmento tem algums bits associados que so utilizados para determinar as caractersticas de proteo do segmento Permisses de leitura, escrita, execuo Cache de descritor de segmento Evita dois acessos a memria Alterado apenas quando o registrador de seletor de segmento alterado
Segmentao no 8086/8088
Processadores sem modo protegido Sem proteo, no tem sentido a existncia de permisses e limite no segmento O descritor de segmento resume-se base Como os registradores so de 16 bits decidiu-se limitar o incio de segmentos apenas alinhados com "pargrafos" Segmentao mal implementada O "tamanho mximo"do segmento 64KB O limite do segmento no garantido Na verdade apenas um esquema para enderear 1MB utilizando 2 registradores
Copyright (c) Walter Fetter Lages p.21
Segmentao no 8086/8088