Baixe o app para aproveitar ainda mais
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
Compartilhar