Beruflich Dokumente
Kultur Dokumente
NEANDER - Organização
Neander - características
Largura de dados e endereços de 8 bits
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)
NEANDER
Memória Memória
(Programa) (Dados)
Registradores e
Controle
Instruções do Neander
Código Instrução Comentário
0000 NOP nenhuma operação
0001 STA end armazena acumulador - (store)
0010 LDA end carrega acumulador - (load)
0011 ADD end soma
0100 OR end “ou” lógico
0101 AND end “e” lógico
0110 NOT inverte (complementa) acumulador
1000 JMP end desvio incondicional - (jump)
1001 JN end desvio condicional - (jump on negative)
1010 JZ end desvio condicional - (jump on zero)
1111 HLT término de execução - (halt)
Exemplo - Soma
LDA A
Exercício
Considerando o exemplo anterior faça
agora a subtração de duas variáveis e
crie também o fluxograma do programa
Comparação – Exemplo 1
Determine uma variável A é positiva ou negativa.
Armazene-a em 129 de 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
Comparação – Exemplo 1
Determine uma variável A é positiva ou negativa.
Armazene-a em 129 de for negativa e em 130 se for
positiva ou igual a zero.
posição: 128: variável A LDA A
posição: 129: variável N
posição: 130: variável P
N(NEGATIVO)
JN
SE A < 0 P0(POSITIVO
OU IGUAL A ZERO)
ENTÃO
N := A STA N STA P
SENÃO
P := A
HLT
Comparação – Exemplo 1
Determine uma variável A é positiva ou negativa.
Armazene-a em 129 de for negativa e em 130 se for
positiva ou igual a zero.
posição: 128: variável A LDA A
posição: 129: variável N
posição: 130: variável P
N(NEGATIVO)
JN
SE A < 0 P0(POSITIVO
OU IGUAL A ZERO)
ENTÃO
N := A STA N STA P
SENÃO
P := A
HLT
Comparação – Exemplo 1
Endereço Dado Mnemônico Endereço
0 32 LDA 128
1 128
2 144 JN 7
3 7 LDA A
4 16 STA 130
5 130
6 240 HLT N(NEGATIVO)
7 16 STA 129 JN
8 129 P0(POSITIVO
9 240 HLT OU IGUAL A ZERO
HLT
Comparação – Exemplo 2
Determine qual a maior de 3 variáveis positivas de 8
bits, representadas em complemento de dois e
armazenar 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 reserva 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
Comparação – Exemplo 2
SE A < B
ENTÃO SE B < C
ENTÃO C
SENÃO B
SENÃO SE A < C
ENTÃO C
SENÃO A
Exemplo Comparação
SE A < B
Exemplo Comparação
SE A < B
SE A-B < 0
SE A+(-B) < 0
Exemplo Comparação
SE A < B LDA 129
SE A-B < 0
SE A+(-B) < 0
Exemplo Comparação
SE A < B LDA 129
NOT
ADD 132 (1)
SE A-B < 0
SE A+(-B) < 0
Exemplo Comparação
SE A < B LDA 129
NOT
ADD 132 (1)
ADD 128
SE A-B < 0
SE A+(-B) < 0
Exemplo Comparação
SE A < B LDA 129
NOT
ADD 132 (1)
ADD 128
SE A-B < 0 JN END (então)
(senão)
SE A+(-B) < 0
Exemplo Comparação
SE A < B 0 - LDA 129
1 - NOT
2 - ADD 132 (1)
3 - ADD 128
SE A-B < 0 4 - JN END (então)
5 - (senão)
6 - ...
SE A+(-B) < 0