Vous êtes sur la page 1sur 11

27/04/2015

Processador Hipotético (Máquina Hipotética) NEANDER

Professora Anelise Kologeski

Arquitetura de Computadores I

Processador Hipotético: Neander

Dica:

use como referência o livro “Fundamentos de Arquitetura de Computadores”, da série livros didáticos, Editora Sagra Luzzatto, do autor Raul Fernando Weber. (Este livro é do Instituto de Informática da UFRGS)

27/04/2015

Processador Hipotético: Neander

Características:

Largura de dados e endereços de 8 bits;

Modo de endereçamento direto ou absoluto;

Dados representados em complemento de dois;

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

Processador Hipotético: Neander

Código

Instrução

Comentário

0000

NOP

Nenhuma operação

0001

STA endereço

Armazena acumulador (store)

0010

LDA endereço

Carrega acumulador (load)

0011

ADD endereço

Soma

0100

OR endereço

OU Lógico

0101

AND endereço

E Lógico

0110

NOT

Complementa (inverte) acumulador

1000

JMP endereço

Desvio incondicional (JUMP)

1001

JN endereço

Desvio Condicional (JUMP on NEGATIVE)

1010

JZ endereço

Desvio Condicional (JUMP on ZERO)

1111

HLT

Término de execução (HALT)

27/04/2015

Processador Hipotético: Neander

Processador Hipotético: Neander
Processador Hipotético: Neander Memória de Memória de Programa: Dados: Posições 0 até Posições 128 127
Processador Hipotético: Neander
Memória de
Memória de
Programa:
Dados:
Posições 0 até
Posições 128
127
até 255

27/04/2015

Processador Hipotético: Neander

Valor do Valor do Registrador Registrador Acumulador Contador de Programa (PC)
Valor do
Valor do
Registrador
Registrador
Acumulador
Contador de
Programa (PC)

Processador Hipotético: Neander

Indica que o Neander está em Decimal Quando em branco, indica que o Neander está
Indica que o
Neander está
em Decimal
Quando em branco,
indica que o Neander
está em Hexadecimal

27/04/2015

Processador Hipotético: Neander

Sinaliza que o acumulador tem um valor negativo Sinaliza que há o valor zero no
Sinaliza que o
acumulador tem
um valor
negativo
Sinaliza que há o
valor zero no
Acumulador

Exercício 1

Faça um programa que some o conteúdo da posição 129 com o conteúdo da posição 130, e armazene o resultado na posição 131.

Preencha as posições 128 e

129 com algum

valor: 20 e 30, por exemplo

130, e armazene o resultado na posição 131. Preencha as posições 128 e 129 com algum

27/04/2015

Solução: Exercício 1

Faça um programa que some o conteúdo da posição 129 com o conteúdo da posição 130, e armazene o resultado na posição 131.

programa que some o conteúdo da posição 129 com o conteúdo da posição 130, e armazene
programa que some o conteúdo da posição 129 com o conteúdo da posição 130, e armazene

Exercício 2

Agora faça um programa que SUBTRAIA um valor de outro.

Grave na posição 130 o valor 10 e na posição 131 o valor 5.

(10 5) e grave a resposta na posição

Faça

132.

ATENÇÃO:

a

subtração

deve

ser

feita

utilizando o complemento de DOIS.

27/04/2015

Exercício 3

Determine se uma variável A é positiva ou negativa. Armazene-a em 129 se for negativa e em 130 se for positiva ou igual a zero.

posição: 128: variável A

posição: 129: variável N

posição: 130: variável P

SE A < 0

ENTÃO

N := A

SENÃO

P := A

Solução Parcial: Exercício 3

Determine se uma variável A é positiva ou negativa. Armazene-a em 129 se for negativa e em 130 se for positiva ou igual a zero.

posição: 128: variável A

posição: 129: variável N

posição: 130: variável P SE A < 0

variável A • posição: 129: variável N • posição: 130: variável P SE A < 0

ENTÃO

N := A

SENÃO

P := A

27/04/2015

Exercício 4

Faça a operação de XOR entre 2 valores. Utilize o valor 10 na posição 128 e o valor 5 na posição 129 para testar. A XOR entre estes valores deve resultar no valor 15. Escreva o resultado final na posição 132. Use as

posições 130 e 131 para o armazenamento dos valores

intermediários. Teste também com 96 e 3 nas posições 128 e 129, respectivamente. Agora, coloque 15 e 1 nas posições 128 e 129. Qual deve ser o resultado?

Equivalência:

A XOR B = (A.~B) + (~A.B)

Exercício 5

Determine qual a maior de 3 variáveis positivas de 8

bits, representadas em complemento de dois e

armazenadas em posições consecutivas da memória. O resultado (ou seja, a maior variável), deve aparecer na posição de memória consecutiva às ocupadas pelas variáveis na área reservada aos dados.

Posição: 128: variável A

Posição: 129: variável B

Posição: 130: variável C

Posição: 131: resultado R: maior das variáveis

27/04/2015

Solução Parcial: Exercício 5

Se 128 > 129

e 128 > 130 128 na 131

Se 128 > 129 e 130 > 128 (JN 37) 130 na 131

Se 129 > 128 (JN 23) e 129 > 130 129 na 131

Se 129 > 128 (JN 23) e 130 > 129 (JN 37) 130 na 131

Processador Hipotético: Neander

Quais são as limitações do Neander?

27/04/2015

Processador Hipotético: Neander

Quais são as limitações do Neander?

128 linhas de programa;

128 linhas de dados;

Sinaliza apenas zero ou negativo: como saber se ocorreu overflow?

Dados e operações com apenas 8 bits;

Representação de valores entre:

0 e 255 ou -127 e 127.

Trabalho Valendo 2,0 da N2

Faça o laço de repetição FOR utilizando o NEANDER. Utilize como base o programa a seguir. Sua saída deve apresentar o mesmo resultado que a

programação em C, porém escreva o valor final na

posição 132.

Sua saída deve apresentar o mesmo resultado que a programação em C, porém escreva o valor

27/04/2015

Trabalho Valendo 2,0 da N2

Faça o laço de repetição FOR utilizando o NEANDER. Utilize como base o programa a seguir. Sua saída deve apresentar o mesmo resultado que a programação em C, porém escreva o valor final na

posição 132.

Trabalhos atrasados não

serão aceitos, pois o código

fonte será liberado na próxima aula

Individual, Dupla ou Trio
Individual, Dupla
ou Trio
pois o código fonte será liberado na próxima aula Individual, Dupla ou Trio Entregar em mãos:
Entregar em mãos: escrito ou impresso
Entregar em mãos:
escrito ou impresso