Você está na página 1de 9

31/03/2011

Curso – Sistemas de Informação Disciplina – INTCOMP Computador Hipotético Prof. Edson Saraiva de Almeida

Curso – Sistemas de Informação Disciplina – INTCOMP Computador Hipotético

Prof. Edson Saraiva de Almeida

Fevereiro/2011

Computador Hipotético

O NEANDER é um computador muito simples, desenvolvido apenas para fins didáticos.

Processadores modernos são muito mais complexos que NEANDER.

Mesmo processadores utilizados nas mais sofisticadas estações de trabalho são baseados nos conceitos elementares abordados no NEANDER.

2

31/03/2011

Computador Hipotético • O NEANDER só possui um modo de endereçamento: o modo direto (muitas
Computador Hipotético
• O NEANDER só possui um modo de
endereçamento: o modo direto (muitas vezes
também chamado de absoluto).
• No modo de endereçamento direto, a palavra
que segue o código da instrução contém, nas
instruções de manipulação de dados, o
endereço de memória do operando.
• Nas instruções de desvio, esse endereço
corresponde à posição de memória onde está
a próxima instrução a ser executada.
3
Computador Hipotético
• Neander
Registradores
Memória
de
programa
Memória
de dados
Código da
operação
4

31/03/2011

Computador Hipotético

Programa e os dados estarão armazenados na memória

Deve ser escolhida uma área de programa e uma área de dados

A área de programa não deve invadir a área de dados e vice-versa

Por convenção a área de programa ocupa a metade inferior dos endereços e á área de dados ocupa a metade superior.

 

5

Computador Hipotético

Largura de dados e endereços de 8 bits

Pode acessar qualquer endereço no intervalo de:

00000000 a 11111111 (em binário)

0 a 255 (em decimal)

0 a FF (em hexadecimal)

Divisão da memória

Área de programa – posição 0 16 até 7F 16

Área de dados – posição 80 16 até FF 16

 

6

31/03/2011

 

Computador Hipotético

 

1 acumulador de 8 bits (AC)

 

1 apontador de programa de 8 bits (PC)

1 registrador de estado com 2 códigos de condição: negativo (N) e zero (Z)

Postulado de Von Neumann

 

1. Um único controle centralizado (uma só CPU);

2. Uma única memória para dados e instruções; e

3. As instruções devem fazer operações elementares sobre os dados.

 

7

 

Computador Hipotético

 

Palavra de 8 bits

 

11 1 1 1 1 1 2 255

1

1

1

1

1

1

2

255

 

1

0

0

1

2

9

 

0

0

0

1

0

0

0 2

8

11 1 1 1 1 1 2 255

1

1

1

1

1

1

2

255

 

1

1

0

0

1

2

25

 

0

0

1

1

0

0

0

2

24

 

8

Formato da instruções • As instruções possuem um ou dois bytes b i t 7

Formato da instruções

As instruções possuem um ou dois bytes

bit 7 a 4

bit 3 a 0
bit 3 a 0
possuem um ou dois bytes b i t 7 a 4 bit 3 a 0 Instruções

Instruções com um byte:

NOP e NOT Instruções com dois bytes:

STA, LDA, ADD,OR, AND, JMP, JN, JZ

9

com dois bytes: STA, LDA, ADD,OR, AND, JMP, JN, JZ 9 Conjunto de Instruções Código •

Conjunto de Instruções

Código

0000

0001

0010

0011

0100

0101

0110

1000

1001

1010

1111

Instrução

NOP

STA endereço

LDA endereço

ADD endereço

OR endereço

AND endereço

NOT

JMP endereço

JN endereço

JZ endereço

HLT

Comentário nenhuma operação armazena acumulador carrega acumulador soma “ou” lógico “e” lógico inverte acumulador PC <- endereço IF N=1 THEN PC <- endereço JZ 100 somente se o acum=0 término de execução - (halt)

10

31/03/2011

31/03/2011

Exemplo – copia o conteúdo da mem • Copiar o conteúdo do endereço 130 para
Exemplo – copia o conteúdo da mem
Copiar o conteúdo do endereço 130 para o
endereço 140 supondo que no endereço
130 esta carregado o valor 51.
Memória de dados
Memória de programa
130 – 51
0 – LDA (carrega acum)
.
INSTRUÇÃO
DE 2 BYTES
.
1 – 130 (end de memória)
.
140
2 - STA
3 - 140
11
Exemplo – soma de duas parcelas
• Faça um programa que soma duas
variáveis. As variáveis (memória de dados)
e o resultado estão dispostos segundo o
mapa de memória abaixo:
• posição: 128: variável A
• posição: 129: variável B
• posição: 130: resultado R
12

31/03/2011

Exemplo – soma de duas parcelas Memória de programa Endereço Instrução Significado acumulador recebe o
Exemplo – soma de duas parcelas
Memória de programa
Endereço
Instrução
Significado
acumulador recebe o 1o valor
soma-se o 2o valor ao acumul
gravar resultado na posição 130
6
HLT
Memória de dados
128 87
A
129 34
B
130 121
R
13
Exemplo – soma de duas parcelas
Carrega os dados na memória
Digita no endereço de memória o valor
correspondente
14

31/03/2011

Exemplo – soma de duas parcelas

Carrega o programa

Exemplo – soma de duas parcelas • Carrega o programa Digita o código da operação do
Exemplo – soma de duas parcelas • Carrega o programa Digita o código da operação do

Digita o código da operação do programa

15

Exemplo- soma de duas parcelas

F8 executa o programa

Próxima instrução a ser executada

Exemplo- soma de duas parcelas • F8 executa o programa Próxima instrução a ser executada Acumulador
Exemplo- soma de duas parcelas • F8 executa o programa Próxima instrução a ser executada Acumulador

Acumulador atualizado

16

31/03/2011

Exemplo - decrementa contador ACUM 130 Acumulador recebe o conteúdo do endereço de memória 130
Exemplo - decrementa contador
ACUM
130
Acumulador recebe o conteúdo
do endereço de memória 130
131
ACUM
Endereço de memória 131
recebe o acumulador – guarda o
valor atual do acumulador
v
Se acumulador = 0
se acum = 0
F
AACUM
ADD 132
Soma conteúdo do acumulador
com -1
APC
2
Volta incondicional para
instrução 2
TERMINA
17
Exemplo – decrementa contador
Memória de programa
Memória de dados
Endereço
Instrução
Significado
130 5
131 0
132 255
10
HLT
18