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
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

1
31/03/2011

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.

Computador Hipotético
• Neander Registradores

Memória
de
programa
Memória
de dados

Código da
operação

2
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.

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 016 até 7F16
– Área de dados – posição 8016 até FF16

3
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.

Computador Hipotético

• Palavra de 8 bits

1 1 1 1 1 1 1 12 255

1 0 0 12 9
0 0 0 1 0 0 02 8

1 1 1 1 1 1 1 12 255

1 1 0 0 12 25
0 0 1 1 0 0 02 24

4
31/03/2011

Formato da instruções

• As instruções possuem um ou dois bytes

bit 7 a 4 bit 3 a 0 Instruções com um byte:


NOP e NOT
Instruções com dois bytes:
STA, LDA, ADD,OR, AND,
JMP, JN, JZ

Conjunto de Instruções
Código Instrução Comentário
• 0000 NOP nenhuma operação
• 0001 STA endereço armazena acumulador
• 0010 LDA endereço carrega acumulador
• 0011 ADD endereço soma
• 0100 OR endereço “ou” lógico
• 0101 AND endereço “e” lógico
• 0110 NOT inverte acumulador
• 1000 JMP endereço PC <- endereço
• 1001 JN endereço IF N=1 THEN PC <- endereço
• 1010 JZ endereço JZ 100 somente se o acum=0
• 1111 HLT término de execução - (halt)

10

5
31/03/2011

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

6
31/03/2011

Exemplo – soma de duas parcelas


Memória de programa

Endereço Instrução Significado


0 LDA acumulador recebe o 1o valor
1 128
2 ADD soma-se o 2o valor ao acumul
3 129
4 STA gravar resultado na posição 130
5 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

7
31/03/2011

Exemplo – soma de duas parcelas

• Carrega o programa

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

Acumulador atualizado 16

8
31/03/2011

Exemplo - decrementa contador


Acumulador recebe o conteúdo
ACUM 130 do endereço de memória 130

Endereço de memória 131


131 ACUM recebe o acumulador – guarda o
valor atual do acumulador

v Se acumulador = 0
se acum = 0

AACUM ADD 132


Soma conteúdo do acumulador
com -1

Volta incondicional para


APC 2
instrução 2

TERMINA 17

Exemplo – decrementa contador


Memória de programa Memória de dados

Endereço Instrução Significado


0 LDA 130 5 acumulador recebe contador
1 130
131 0
2 STA armazena l
3 131 132 255
4 JZ gravar resultado na posição 130
JZ 10 somente se acum=0
5 10
6 ADD
Soma -1
7 132
8 JMP
9 2 Vai para 2 incondicional

10 HLT Termina

18

Você também pode gostar