Buscar

Tutorial_NEANDER

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 3 páginas

Prévia do material em texto

Tutorial para uso do Simulador do Computador NEANDER 
 
Considere o problema de determinar o maior inteiro (positivo) entre três variáveis: A, B e 
C, e armazenar o resultado numa quarta variável, RES. Vamos adotar a convenção do livro 
texto (WEBER, 2002) e usar os endereços de memória entre [128..255] para armazenar 
dados e constantes. Sendo assim, nossa área de dados da memória do Neander ficará assim: 
 
Figura 1 - Memória do Neander 
Conforme resolvido em sala, uma possível solução para este problema está no código a 
seguir: 
if ((A-B)<0) { 
 if ((B-C)<0) RES=C 
 else RES=B; 
} 
else { 
if ((A-C)<0) RES=C 
 else RES=A; 
}; 
 
End. Instrução End Instrução 
0 LDA 129; (AC=B) 22 LDA 130; (C é maior, AC=C) 
2 NOT ; (complementa B) 24 JMP 37; (salta para End. 37) 
3 ADD 132; (soma 1 em B) 26 LDA 130; (AC=C) 
5 ADD 128; (soma com A) 28 NOT; (complementa C) 
7 JN 26; (se negativo, B maior, salta para 26) 29 ADD 132; (soma 1 em C) 
9 LDA 130; (AC=C) 31 ADD 129; (soma com A) 
11 NOT ; (complementa C) 33 JN 22; (se negativo, C maior, salta para 22) 
12 ADD 132; (soma 1 em C) 35 LDA 129; (B é maior, AC=B) 
14 ADD 128; (soma com A) 37 STA 131; (RES=AC) 
16 JN 22; (se negativo, C maior, salta para 22) 39 HLT; (fim) 
18 LDA 128; (A é maior, AC=A) 
20 JMP 37; (salta para End. 37) 
 
O simulador apresenta a interface dividida em três partes: 
 
Programa 
 
 
Neander 
 
 
Os botões indicam, respectivamente: execução direta e execução passo-a-passo. 
A tabela Mneumônicos apresenta as instruções do Neander e seu código em decimal (livro 
págs. 50 e 51) para auxiliar o preenchimento das instruções na tela Programa. 
A seta ao lado da coluna de endereços indica o 
endereço da instrução que será executada (PC). Observe 
que, por padrão o programa começa no endereço 0. 
No canto inferior direito há uma pequena caixa de 
texto onde deverá ser inserido o código numérico em 
decimal da instrução que irá ocupar o endereço apontado 
pela seta verde (PC). Por exemplo, no nosso programa, 
seria a instrução “LDA 129”. Logo preenche-se 32 
(código da instrução LDA, livro págs. 50 e 51) e em 
seguida ENTER. A seta verde irá mover-se para o 
endereço 1, onde deveremos entrar com o valor “129”, 
outro byte componente da instrução, em seguida ENTER. 
A seta irá mover-se para o endereço 2, correspondente à 
segunda instrução de nosso código. 
No canto inferior esquerdo, em vermelho, há uma 
caixa de texto denominada BP. Nesta caixa é permitido a 
você a inserção de um endereço de memória (instrução, 0 
a 127) onde ocorrerá um breakpoint durante a execução 
do programa. 
 
Nesta janela são 
mostrados os valores (conteúdo) 
dos registradores PC e AC, os 
bitz N e Z, sob a forma de 
apagado (0) e aceso (1). Na 
caixa denominada “Execução” o 
número de execuções e 
instruções do programa 
carregado é exibido. Na caixa 
“Instrução” um decodificador 
para as instruções mostra o 
valor numérico dos 16 bits 
dessa instrução (8bits+8bits) e o 
seu significado no código (livro 
págs. 50 e 51). 
A exibição pode ser feira 
em decimal [0..9] ou 
hexadecimal [0..F]. 
Dados 
 
 
 
O simulador permite também que um arquivo seja salvo no formato .MEM (exclusivo dele) 
ou no formato texto .TXT. Porém, a abertura (carregamento) de um arquivo salvo só é 
possível no formato .MEM. Ambas opções podem ser acessadas no menu Arquivo da 
janela Neander. 
 Corresponde aos endereços de memória situados entre 
[128..255] e é destinado ao preenchimento de valores nos endereços 
das variáveis e das constantes do programa na área de dados da 
memória do Neander. 
O preenchimento é feito através da caixa de texto no canto 
inferior direito da janela Dados e, na figura ao lado, mostra que o 
endereço 132 foi inicializado com a constante 1, a variável A foi 
inicializada com o valor 65, B com 8 e C com 200. RES não importa 
valor inicial.

Outros materiais