Sistemas da Computao
Prof. Rossano Pablo Pinto, Msc. rossano at gmail com 2 semestre 2007
MHz
Transistors Mem 29.000 1MB 29.000 16MB 134.000 16MB 275.000 4GB 1.2M 4GB 3.1M 5.5M 7.5M 4GB 4GB 4GB
PentiumPro 1995
150200 233400
Program Counter
Copyleft Rossano Pablo Pinto 3
PSW
EAX em conjunto c/ EDX armazenam produtos e dividendos de 64 bits E?X = ?X + Ext ?X = ?L + ?H: 16 bits ?L: A Low (low order): 8 bits ?H: A High (high order): 8 bits ?=A|B|C|D Nos 8088 e 80286 s existiam registradores de 8 e 16 bits Registradores de 32 bits foram inseridos no 80386 (foi adicionado o prefixo E - Extendido, como em EAX, EBX, ECX e EDX)
Copyleft Rossano Pablo Pinto 4
32 bits
ESI e EDI: usados p/ ponteiro de memria em instrues de manipulao de strings ESI: endereo da string de origem (source) EDI: endereo da string de destino (destiny)
EBP: geralmente utilizado como ponteiro para a base do frame da pilha corrente ESP: ponteiro para topo da pilha (registrador de propsito especfico)
16 bits
Segmento de cdigo Segmento da pilha do programa Segmento de dados Ponteiro extra de segmento Ponteiro extra de segmento Ponteiro extra de segmento
Registradores de segmento Utilizados inicialmente no 8088 p/ enderear 220 bytes de memria com endereos de 16 bits Atualmente, quando o processador configurado p/ operar endereos lineares de 32 bits, estes registradores podem ser ignorados
32 bits
Intelx86FLAGSRegister Bit# 0 1 2 3 4 5 6 7 8 9 10 11 12,13 14 15 16 17 18 19 20 RF VM AC VIF VIP ZF SF TP IF DF OF IOPL NT AF PF Abbreviation CF Carryflag 1 Reserved Parityflag 0 Reserved Auxiliaryflag 0 Reserved Zeroflag Signflag Trapflag(singlestep) Interruptenableflag Directionflag Overflowflag I/Oprivilegelevel(286+only) Nestedtaskflag(286+only) 0 Reserved EFLAGS Resumeflag(386+only) Virtual8086modeflag(386+only) Alignmentcheck(486SX+only) Virtualinterruptflag(Pentium+) X X X X Description FLAGS S S S S S X X C S X X 21 22 23 24 25 26 27 28 29 30 31 3263 ID Category* Bit#
Intelx86FLAGSRegister Abbreviation Description FLAGS Identification(Pentium+) 0 Reserved 0 Reserved 0 Reserved 0 Reserved 0 Reserved 0 Reserved 0 Reserved 0 Reserved 0 Reserved 0 Reserved RFLAGS 0 Reserved X Category*
Virtualinterruptpending(Pentium+) X
http://en.wikipedia.org/wiki/FLAGS_register_(computing)
Modo Real (Real Mode) Modo Virtual 8086 (Virtual 8086 Mode) Modo Protegido (Protected Mode)
Desabilita todas as funes posteriores ao 8088 No oferece protees se um programa falhar a mquina inteira falha (trava)
10
Roda programas feitos para o 8088 de forma protegida SO controla mquina toda SO cria um ambiente isolado que age com um 8088 Se o programa trava, o SO notificado ao invs de travar a mquina toda Janela MS-DOS roda neste modo p/ evitar programas DOS mal-comportados
Copyleft Rossano Pablo Pinto 11
Level 0 kernel mode Level 1 RARAMENTE UTILIZADO Level 2 RARAMENTE UTILIZADO Level 3 user mode
12
13
Acesso total mquina PODE EXECUTAR QUALQUER INSTRUO EXISTENTE O Sistema Operacional executado neste modo
14
15
Portabilidade Fcil manuteno Menos linhas de cdigo fonte Compiladas Interpretadas Hbridas
Copyleft Rossano Pablo Pinto 16
Tipos
Compiladas
17
Compiladas
Compilador arquivo cdigo objeto
arquivo fonte
18
Compiladas
Compilador Gera cdigo dependente de: - Processador - Sistema Operacional
Ex.: - IA-32 com Linux - IA-32 com MacOS X Cdigo fonte o mesmo, mas cdigo executvel diferente
19
Interpretadas
O programa no executa diretamente no processador um interpretador se encarrega de ler o programa fonte e, enquanto l, gerar instrues que so imediatamente colocadas para execuo
20
Hbridas
Programa fonte compilado para um mquina virtual. Ex.: Java Programa Java -> Byte Code -> JVM
21
22
Exemplos:
C (Pgina 8 livro Professional Assembly Language) cdigo de mquina IA-32 (Pgina 8) Assembly IA-32 (Pgina 11)
23
Exemplos: Programa em C
24