Arquitetura de computadores

Disponível somente no TrabalhosFeitos
  • Páginas : 15 (3543 palavras )
  • Download(s) : 0
  • Publicado : 11 de novembro de 2012
Ler documento completo
Amostra do texto
Arquitetura de Computadores
Parte II: Arquiteturas-Exemplo Simuladores e Máquinas Reais

Objetivos Gerais


Demonstrar os conceitos genéricos de arquiteturas de computadores (nível ISA) através do uso de algumas arquiteturasexemplo representativas
 

computadores hipotéticos: simuladores computadores reais: Intel x86



Introduzir o tópico de programação em baixo nível, comoferramenta para o entendimento de arquiteturas de computadores

Arquiteturas estudadas


Computadores hipotéticos (simuladores com finalidade didática):
   

Neander Ahmes Ramses Cesar

Weber, Raul F. “Fundamentos de Arquitetura de Computadores”. Série de Livros Didáticos do Instituto de Informática da UFRGS, Número 8, 2a. Edição. Sagra-Luzzatto, 2001



Computadores reais:
IBM PC – família Intel x86

O Computador Neander
    

Largura de dados e endereços: 8 bits


i.e., comprimento de palavra de 8 bits

Dados representados em complemento de 2 1 acumulador de 8 bits (AC)


arquitetura de acumulador

1 apontador de programa de 8 bits (PC) 1 registrador de estado (flags) com 2 códigos de condição:


negativo (N) e zero (Z)

Neander:Formato das Instruções
 

opcode: 8 bits operando: 8 bits seguintes
 

especifica um endereço modo direto Endereço
4 3 0 (ignorados)

Memória
opcode operando

x: Endereço x+1:

7 opcode

endereço direto Obs.: o segundo byte (operando) ocorre apenas em instruções de manipulação de dados, i.e., que fazem referência à memória

...

Neander: Organização da Memória - Convenções


256 palavras de 8 bits: 256 bytes Primeiros 128 bytes (metade inferior):


Código do programa Dados do programa



128 bytes seguintes (metade superior):




Apenas convenções: dados e código podem ser localizados em qualquer lugar


Mas um não pode invadir a área do outro

Neander: Conjunto de Instruções
Código 0000 0001 0010 0011 0100 0101 0110 1000 1001 1010 1111Instrução NOP STA end LDA end ADD end OR NOT JMP end JN JZ HLT end end end AND end Significado nenhuma operação MEM(end) ← AC AC ← MEM(end) AC ← MEM(end) + AC AC ← MEM(end) OR AC (“ou” bit-a-bit) AC ← MEM(end) AND AC (“e” bit-a-bit) AC ← NOT AC (complemento de 1) PC ← end (desvio incondicional) IF N=1 THEN PC ← end IF Z=1 THEN PC ← end término da execução (halt)

Neander: Códigos de Condição(Flags)


Gerados pela Unidade Lógico-Aritimética após as seguintes operações:


ADD, NOT, AND, OR e LDA

 

Testados pelas instruções JN e JZ N (negativo): indica o sinal do resultado
 

1: resultado é negativo 0: resultado é positivo 1: resultado é igual a zero 0: resultado é diferente de zero



Z (zero): indica se o resultado é igual a zero
 

Neander: SimuladorObject 1

O Computadore Ahmes
    

Largura de dados e endereços: 8 bits Dados representados em complemento de 2 1 acumulador de 8 bits (AC) 1 apontador de programa de 8 bits (PC) 1 registrador de estado (flags) com 5 códigos de condição:
 

negativo (N) e zero (Z) carry out (C), borrow out (B), overflow (V)



Compatível com o Neander

Ahmes: Conjunto de Instruções
Código0000 xxxx 0001 xxxx 0010 xxxx 0011 xxxx 0100 xxxx 0101 xxxx 0110 xxxx 0111 xxxx 1000 xxxx 1001 00xx 1001 01xx 1001 10xx 1001 11xx Instrução NOP STA end LDA end ADD end OR NOT SUB end JMP end JN JP JV end end end end AND end Significado nenhuma operação MEM(end) ← AC AC ← MEM(end) AC ← AC + MEM(end) AC ← AC OR MEM(end) (“ou” bit-a-bit) AC ← AC AND MEM(end) (“e” bit-a-bit) AC ← NOT AC (complementode 1) AC ← AC - MEM(end) PC ← end (desvio incondicional) IF N=1 THEN PC ← end IF N=0 THEN PC ← end IF V=1 THEN PC ← end IF V=0 THEN PC ← end

JNV end

Ahmes: Conjunto de Instruções (2)
Código 1010 00xx 1010 01xx 1011 00xx 1011 01xx 1011 10xx 1011 11xx 1110 xx00 1110 xx01 1110 xx10 1110 xx11 1111 xxxx Instrução JZ JC JB SHR SHL ROR ROL HLT end end end JNZ end JNC end JNB end Significado IF...
tracking img