Buscar

Trabalho Neander-X

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Organização e Arquitetura de Computadores. 
Parte 1 
Semana 1 e 2 : 
Caracteristicas do processador NEANDER-X. 
Características : 
É um processador simples utilizado para fins acadêmicos, pelo fato dos processadores modernos serem mais complexos. No entanto, esses processadores modernos tem toda a base conceitual do Neander. 
O Neander possui o modo de endereçamento direto, que também é chamado de absoluto. Nesse modo, 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. 
Questões :
a) Quantos bits são utilizados para representar uma instrução ?
	Utiliza 8 bits para representar uma instrução.
b) Quantos bits são utilizados para representar um endereço ?
	Utiliza 8 bits para representar um endereço.
c) Como são representados os números inteiros negativos ?
	Os números negativos são representados como Flag N (negativo) em 
	complemento de 2. Se valer 1, o inteiro é negativo, se valer 0, o inteiro é 
	positivo.
d) Quantas instruções podem existir ?
	Em 8 bits podem ser representadas até 256 instruções. O Neander-X tem 
	10 instruções e uma 11° que representa “nenhuma operação”.
e) Qual o tamanho máximo de memória endereçavel ?
	256 posições (palavras de 8 bits) e apenas endereçamento direto.
f) Quais são os registradores disponíveis ?
	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), 
	o REM, que é o registrador de endereços da memória e o RDM, que é o 
	registrador de dados da memória.
g) Qual o formato de uma instrução ?
	8 bits para opcode (código da operação) e os 8 bits seguintes para o 
	operando. Há Instruções que ocupam apenas 1 byte (NOP,NOT) e 
	instruções que usam 2 bytes (STA,LDA,ADD,OR,AND,JMP,JN,JZ).
SEMANA 3 E 4 :
Pesquisar a função dos simuladores e comparar o simulador NeanderWin (simulador do processador Neander-X) com outro a sua escolha.
Tendo a função de facilitar ao máximo as atividades didáticas do professor e o apoio mais completo possível para as dificuldades comuns do aluno. 
Sendo criado um ambiente integrado para desenvolvimento, que executa 
em Windows e Linux incluindo: 
	Editor de textos; 
	Montador (assembler); 
	Simulador da arquitetura;
	Visualizador da memória simulada; 
	Ferramenta de apoio ao aprendizado de instruções; 
	Utilitário para conversões de bases; 
	Simulador de visor painel de chaves; 
	Gerador /carregador de imagem da memória simulada. 
	
Com isso os alunos tem diversas experiência práticas como simulador, 
buscando nesse processo muito mais que apresentar conceito teóricos e 
nomenclatura, mas o conduzir a uma visão abrangente e em pequena medida, 
criticar sobre a estrutura e o conjunto de instruções, que permita gerar a 
curiosidade para estudos futuros mais aprofundados.
Comparação do simulador Neanderwin e o simulador K&S. 
Quanto às limitações analisadas nos simuladores existentes e o que se deseja que o sistema proposto atenda, verificado que as ferramentas apresentadas, Neander e K&S, simulam de uma forma correta o funcionamento do hardware (parte física) e a interação entre os dispositivos.
O problema está na forma de como é apresentada a simulação e nas funcionalidades oferecidas, o simulador K&S é um simulador gráfico que funciona de forma correta, mas possui duas deficiências significativas: 
1° A sua interface que se distancia um pouco da forma conceitual do hardware do computador. O modo como são apresentados os dispositivos apresenta pouca semelhança com o hardware. 
2° Outro aspecto importante é que os programas criados no K&S para execução não podem ser salvos, pois o software não disponibiliza essa funcionalidade. 
Sobre o Neander pode-se compartilhar quanto à forma gráfica as mesmas considerações feitas ao K&S, sendo que o simulador Neander apresenta menos informações que o K&S quanto ao layout do hardware do computador. O diferencial do Neander é que pode-se salvar os programas inseridos no sistema para uma futura manipulação. 
SEMANA 1 e 2 desta prática : Ambientação
a) Executar o download do simulador.
	Download realizado no site : http://www.dcc.ufrj.br/~gabriel/neander.php
b) Identificar as partes do simulador descrevendo um breve roteiro de como gerar e executar um programa.
Como exemplo, um programa que realiza a soma de 3 posições consecutivas da memória e armazena o resultado numa quarta posição. Inicialmente, devem ser escolhidas a área de dados e a área de programa, ou seja, a localização das instruções e dados na memória. Não existem critérios para essa escolha, mas deve ser observado que área de programa não pode invadir a área de dados e vice-versa. Ou seja, para esse programa, foi escolhida uma alocação de memória de tal forma que o programa ocupe a metade inferior da memória e os dados a metade superior, como segue:
Área de programa início do programa posição 0 (0H)
Área de dados primeira parcela posição 128 (80H)
Segunda parcela posição 129 (81H)
Terceira parcela posição 130 (82H)
Resultado posição 131 (83H)
O programa possível seria:
X EQU 128 : Endereço de variável X definido como 128
Y EQU 129 : Endereço de variável Y definido com 129
W EQU 130 : Endereço de variável W definido como 130
Z EQU 131 : Endereço de variável Z definido como 131
ORG 0
LDA X	: Acumulador A recebe conteúdo de X
ADD Y	: Conteúdo de A é somado ao conteúdo de Y
ADD W	: Conteúdo de A é somando ao conteúdo de W
STA Z		: Conteúdo de A é copiado para Z
HLT		: Processador para
Esse programa pode ser editado em linguagem de montagem, depurado e executado usando o simulador/depurador NEANDERWIN.
c) Listar as instruções disponíveis com o respectivo formato e descrição.
	Código binário
	Instrução
	Descrição
	0000
	NOP
	Nenhuma operção
	0001
	STA ender
	Armazena acumulador (store)
	0010
	LDA ender
	Carrega acumulador (load)
	0011
	ADD ender
	Soma
	0100
	OR ender
	Operação lógica “ou”
	0101
	AND ender
	Operação lógica “e”
	0110
	NOT
	Inverte 
	1000
	JMP ender
	Desvio incondicional (jump)
	1001
	JN ender
	desvio condicional (jump on negative)
	1010
	JZ ender
	desvio condicional (jump on zero)
	1011
	JNZ ender
	desvio condicional (jump on not zero)
	1100
	IN ender
	operação  de entrada no dispositivo “ender”
	1101
	OUT ender
	operação de saída no dispositivo “ender”
	1110
	LDI imed
	carrega o valor imediato imed no acumulador
	1111
	HLT
	término da execução (halt)

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais