Baixe o app para aproveitar ainda mais
Prévia do material em texto
0 ATIVIDADE ESTRUTURADA: CONHECENDO O PROCESSADOR NEANDER-X Parte I: 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. Questionário 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 e largura de dados. 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? 16 instruções. NOP, STA ender, LDA ender, ADD ender, OR ender, AND ender, NOT, SUB ender, JMP ender, JN ender, JZ ender, JNZ ender, IN ender, OUT ender, LDI imed e HTL. e) Qual o tamanho máximo de memória endereçável? 256 posições (palavras de 8 bits) e apenas endereçamento direto. - 00000000 a 11111111 (em binário) - 0 a 255 (em decimal) - 0 M a FFH (em hexadecimal). Com isso temos a seguinte divisão de memória 1 - Área programada - posição 0M até 7FH - Área de dados - posição 80H até FFH. f) Quais são os registradores disponíveis? 1 acumulador de 8 bits (AC) guarda o resultado das operações, 1 apontador de programa de 8 bits (PC) guarda o endereço da próxima instrução, 1 registrador de estado com 2 códigos de condição: negativo (N) e zero (Z). 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). Parte II: Simulador NeanderWin 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. Elaboração Programa O programa a seguir pode ser editado em linguagem de montagem, depurado e executado usando o simulador/depurador NEANDERWIN. Na definição de novos problemas, o único cuidado que deve ser tomado é com a memória disponível para programa e dados, que compreende apenas 256 posições. Exceto onde explicitado, todos os números e endereços são representados na base decimal. Início do programa: 0 Início da área de dados: 128 Posição da 1ª variável: 128 Posição da 2ª variável: 129 Posição do resultado posição: 130 Simbólico Comentários X EQU 128; Endereço da variável X definido como 128 Y EQU 128; Endereço da variável Y definido como 129 W EQU 129; Endereço da variável W definido como 130 ORG 0 LDA X; Acumulador A recebe conteúdo de X ADD Y; Conteúdo de A é somado ao conteúdo de Y STA W; Conteúdo de A é copiado para W HLT; Processador para. END 3 Parte III: 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. 4 Biblioteca/Referências 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_Franci sSherer.pdf
Compartilhar