Buscar

ATIVIDADE ESTRUTURADA OC

Prévia do material em texto

UNIVERSIDADE ESTÁCIO DE SÁ
ALUNA: MATRÍCULA: 
CURSO: ANÁLISE E DESENVOLVIMENTO DE SISTEMAS
ATIVIDADE ESTRUTURADA DE ORGANIZAÇÃO DE COMPUTADORES
Pesquisar as características do processador Neander-X e responda as  seguintes questões:
É 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.
a) Quantos bits são utilizados para representar uma instrução?
As instruções são representadas em 1 byte. 
b) Quantos bits são utilizados para representar um endereço?
São utilizados 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?
Podem existir 10 instruções e uma 11ª que representa “nenhuma operação”.
e) Qual o tamanho máximo de memória endereçável?
Apenas endereçamento direto e palavras de 8 bits (256 posições).
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 registra dor 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).
Ambientação:
Identificar as partes do simulador descrevendo um breve roteiro de como gerar e executar um programa
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.
No simulador, são mostrados os dois dispositivos de entrada e saída (8 chaves e um visor em formato hexadecimal), e diversos botões para controle de execução; Abaixo, e à esquerda, está o editor de textos; À direita se situam os verificadores dos registros e “flags” principais da CPU (AC, PC, Zero e Negativo), e abaixo o visualizador da memória, com controles para alteração de conteúdo. Com isso os alunos têm diversas experiência práticas como simulador, 2 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.
Listar as instruções disponíveis com o respectivo formato e descrição
	Código binário
	Instrução
	Descrição
	0000
	NOP
	nenhuma operaçã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 (complementa) acumulador
	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)
'NOP' código 0
        O comando NOP não realiza nenhuma operação.  É  usado  apenas para  gastar  tempo.
'STA ender' código 1
        O comando STA guarda o acumulador na posição de memória indicada pelo operando ender.
'LDA ender' código 2
        O comando LDA atribui ao acumulador o conteúdo da posição de memória indicada pelo operando ender.
'ADD ender' código 3
        O comando ADD soma ao acumulador o conteúdo de uma posição de memória indicada pelo operando ender.
'OR ender'  código 4
        O comando OR realiza um "ou" lógico entre o acumulador e o conteúdo de uma posição de memória indicada pelo operando ender.
'AND ender' código 5
        O comando AND realiza um "e" lógico entre o acumulador e o conteúdo de uma posição de memória indicada pelo operando ender.
'NOT' código 6
        O comando NOT inverte os bits do acumulador.
'JMP ender' código 8
        O comando JMP (jump) desvia a execução do programa para o endereço indicado pelo operando ender.
'JN ender'  código 9
        O comando JN (jump if negative) desvia a execução do programa para o endereço indicado pelo operando ender, apenas quando a última operação realizada produziu um valor com o bit 7 ligado (negativo).
'JZ ender'  código 10
        O comando JZ (jump if zero) desvia a execução do programa para o endereço indicado pelo operando ender, apenas quando a última operação realizada produziu um valor zero.
'JNZ ender'  código 11
        O comando JNZ (jump if not zero) desvia a execução do programa para o endereço indicado pelo operando ender, apenas quando a última operação realizada produziu um valor diferente de zero.
'IN ender'  código 12
        O comando IN (input) traz para o acumulador o valor lido num dispositivo externo indicado pelo operando ender.  No Neander-X os dispositivos são: chaves (endereço 0) e o  status de "dado disponível" das chaves (endereço 1).
'OUT ender' código 13
        O comando OUT (output) descarrega o conteúdo do acumulador em um dispositivo externo indicado pelo operando ender.  No Neander-X o único dispositivo disponível é um visor  (endereço 0).
'LDI imed' código 14
        O comando LDI (load immediate) carrega no acumulador o valor dado pelo operando imed.
'HLT' código 15
        O comando HLT (halt) para a máquina.
Elabore um programa que execute a soma de duas variáveis de 8 bits representadas em complemento a dois. Considere as posições (em decimal) a seguir:
 
Inicio do programa:                       0
Inicio da área de dados:                128
Posição da 1ª variável:                  128
Posição da 2ª variável:                  129
Posição do resultado:                    130
Compilação (assembly) do texto 
Em 06/05/2017
 1 ;---------------------------------------------------
 2 ; Programa:SOMA DUAS VARIAVEIS EM COMPLEMENT0 A DOIS
 3 ; Autor: DANIELLE CAVALCANTI COELHO
 4 ; Data: 06/05/2017
 5 ;---------------------------------------------------
 6 00 00 NOP 
 7 
 8 A EQU 128
 9 B EQU 129
 10 C EQU 130
 11 01 C0 00 IN 0
 12 03 10 80 STA A
 13 05 D0 00 OUT 0
 14 07 C0 00 IN 0
 15 09 10 81 STAB
 16 0B D0 00 OUT 0
 17 0D 30 80 ADD A
 18 0F 10 82 STA C
 19 11 D0 00 OUT 0
 20 13 F0 HLT 
Listagem da tabela de símbolos
Símbolo Linha Endereço
A 7 080
B 8 081
C 9 082
PRINT DAS TELAS
Escolhendo o primeiro valor: 08
Valor do ACC é exibido na tela.
Entrando com o segundo valor: 10
Mostrando na tela o resultado da soma: 18
Parte III
O processador Neander-X não é utilizado comercialmente. Escreva um relatório que compare o Neander a um processador comercial (você pode escolher!) demonstrando o porquê do uso apenas acadêmico deste processador. 
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, verificou 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 funciona de forma correta, mas possui duas deficiências significativas: em primeiro lugar 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. 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. Analisando sob o foco didático é um aspecto crítico para sua utilização. 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. 
Referência Bibliográfica
http://www.dcc.ufrj.br/~gabriel/neander.php http://www.ppgee.pucminas.br/weac/2006/PDF/WEAC-2006-Artigo-03.pdf http://equipe.nce.ufrj.br/gabriel/estacio/Neander3.pdf http://www.ulbra.inf.br/joomla/images/documentos/TCCs/2011_01/TCCII_CC_FrancisSherer.pdf

Continue navegando