Você está na página 1de 11

27/04/2015

Processador Hipottico
(Mquina Hipottica)
NEANDER
Professora Anelise Kologeski

Arquitetura de Computadores I

Processador Hipottico: Neander


Dica:
use como referncia o livro Fundamentos de
Arquitetura de Computadores,
da srie livros didticos,
Editora Sagra Luzzatto,
do autor Raul Fernando Weber.
(Este livro do Instituto de Informtica da UFRGS)

27/04/2015

Processador Hipottico: Neander


Caractersticas:
Largura de dados e endereos de 8 bits;
Modo de endereamento 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 cdigos de
condio: negativo (N) e zero (Z).

Processador Hipottico: Neander


Cdigo

Instruo

Comentrio

0000

NOP

Nenhuma operao

0001

STA endereo

Armazena acumulador (store)

0010

LDA endereo

Carrega acumulador (load)

0011

ADD endereo

Soma

0100

OR endereo

OU Lgico

0101

AND endereo

E Lgico

0110

NOT

Complementa (inverte) acumulador

1000

JMP endereo

Desvio incondicional (JUMP)

1001

JN endereo

Desvio Condicional (JUMP on NEGATIVE)

1010

JZ endereo

Desvio Condicional (JUMP on ZERO)

1111

HLT

Trmino de execuo (HALT)

27/04/2015

Processador Hipottico: Neander

Processador Hipottico: Neander

Memria de
Programa:
Posies 0 at
127

Memria de
Dados:
Posies 128
at 255

27/04/2015

Processador Hipottico: Neander

Valor do
Registrador
Acumulador

Valor do
Registrador
Contador de
Programa (PC)

Processador Hipottico: Neander

Indica que o
Neander est
em Decimal

Quando em branco,
indica que o Neander
est em Hexadecimal

27/04/2015

Processador Hipottico: Neander

Sinaliza que h o
valor zero no
Acumulador

Sinaliza que o
acumulador tem
um valor
negativo

Exerccio 1
Faa um programa que some o contedo da
posio 129 com o contedo da posio 130, e
armazene o resultado na posio 131.
Preencha as
posies 128 e
129 com algum
valor: 20 e 30,
por exemplo

27/04/2015

Soluo: Exerccio 1
Faa um programa que some o contedo da
posio 129 com o contedo da posio 130, e
armazene o resultado na posio 131.

Exerccio 2
Agora faa um programa que SUBTRAIA um
valor de outro.
Grave na posio 130 o valor 10 e na posio
131 o valor 5.
Faa (10 5) e grave a resposta na posio
132.
ATENO: a subtrao deve ser feita
utilizando o complemento de DOIS.

27/04/2015

Exerccio 3
Determine se uma varivel A positiva ou negativa.
Armazene-a em 129 se for negativa e em 130 se for
positiva ou igual a zero.
posio: 128: varivel A
posio: 129: varivel N
posio: 130: varivel P
SE A < 0
ENTO
N := A
SENO
P := A

Soluo Parcial: Exerccio 3


Determine se uma varivel A positiva ou negativa.
Armazene-a em 129 se for negativa e em 130 se for
positiva ou igual a zero.
posio: 128: varivel A
posio: 129: varivel N
posio: 130: varivel P
SE A < 0
ENTO
N := A
SENO
P := A

27/04/2015

Exerccio 4
Faa a operao de XOR entre 2 valores. Utilize o valor
10 na posio 128 e o valor 5 na posio 129 para
testar. A XOR entre estes valores deve resultar no valor
15. Escreva o resultado final na posio 132. Use as
posies 130 e 131 para o armazenamento dos valores
intermedirios. Teste tambm com 96 e 3 nas posies
128 e 129, respectivamente. Agora, coloque 15 e 1 nas
posies 128 e 129. Qual deve ser o resultado?
Equivalncia:
A XOR B = (A.~B) + (~A.B)

Exerccio 5
Determine qual a maior de 3 variveis positivas de 8
bits, representadas em complemento de dois e
armazenadas em posies consecutivas da
memria. O resultado (ou seja, a maior varivel),
deve aparecer na posio de memria consecutiva
s ocupadas pelas variveis na rea reservada aos
dados.
Posio: 128: varivel A
Posio: 129: varivel B
Posio: 130: varivel C
Posio: 131: resultado R: maior das variveis

27/04/2015

Soluo Parcial: Exerccio 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 Hipottico: Neander


Quais so as limitaes do Neander?

27/04/2015

Processador Hipottico: Neander


Quais so as limitaes do Neander?
128 linhas de programa;
128 linhas de dados;
Sinaliza apenas zero ou negativo: como saber se
ocorreu overflow?
Dados e operaes com apenas 8 bits;
Representao de valores entre:
0 e 255 ou -127 e 127.

Trabalho Valendo 2,0 da N2


Faa o lao de repetio FOR utilizando o NEANDER.
Utilize como base o programa a seguir. Sua sada
deve apresentar o mesmo resultado que a
programao em C, porm escreva o valor final na
posio 132.

10

27/04/2015

Trabalho Valendo 2,0 da N2


Faa o lao de repetio FOR utilizando o NEANDER.
Utilize como base o programa a seguir. Sua sada
deve apresentar o mesmo resultado que a
programao em C, porm escreva o valor final na
Trabalhos atrasados no
posio 132.
Individual, Dupla
ou Trio

sero aceitos, pois o cdigo


fonte ser liberado na
prxima aula

Entregar em mos:
escrito ou impresso

11