Organizacao Computadores - Atividade Estruturada 2
Ensaios: Organizacao Computadores - Atividade Estruturada 2. Pesquise 862.000+ trabalhos acadêmicosPor: jeferoz • 15/11/2013 • 1.599 Palavras (7 Páginas) • 654 Visualizações
SUMÁRIO
INTRODUÇÃO ........................................................................................................ 03
DESENVOLVIMENTO ............................................................................................ 03
CONCLUSÃO .......................................................................................................... 08
REFERENCIAS BIBLIOGRAFICAS ........................................................................ 09
Introdução - Simulador do Processador Neander/X
O NEANDER é um computador muito simples, desenvolvido apenas para fins didáticos. Processadores modernos são muito mais complexos que NEANDER. Entretanto, mesmo processadores utilizados nas mais sofisticadas estações de trabalho são baseados nos conceitos elementares que você aprender com o NEANDER.
O NEANDERWIN estende o conjunto de instruções do NEANDER e oferece uma interface de programação amigável, com a entrada do código em representação simbólica, com diversas facilidades para o programador, que tornam muito mais fácil o uso do processador NEANDER como ferramenta de ensino.
Desenvolvimento
O NEANDER só possui um modo de endereçamento: o modo direto (muitas vezes também chamado de absoluto). No modo de endereçamento direto, 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.
Figura 1
A Figura 1 mostra a aparência da tela principal do sistema NeanderWin. Na parte superior está o menu geral de operação (Arquivo, Editar, etc...) e diversos botões usados em conjunto com o editor de textos.
Logo abaixo, está o painel do simulador, em que são mostrados os dois dispositivos de entrada e saída (oito chaves e um visor em formato hexadecimal), e diversos botões para controle de execução. Imediatamente abaixo, à esquerda, está o editor de textos, no qual o programa do aluno é digitado ou criado interativamente através de uma função para criação tutorada de programas, que será descrita com mais detalhes adiante.
À direita desta área se situam os verificadores dos registros e “flags” principais da CPU (ACC, PC, Zero e Negativo), e abaixo o visualizador da memória, com controles para alteração de conteúdo. Uma vez criado o programa ele será compilado, o que provoca o aparecimento de uma janela “pop-up” (Figura 2) com a listagem, num formato similar à maioria dos montadores profissionais, em que também são indicados nos eventuais erros de compilação. O programa compilado se reflete na alteração da memória, que é imediatamente exibida no painel correspondente. Caso deseje, pode copiar o conteúdo para outro editor de texto.
Figura 2
Programa ainda contem um converso de bases (Figura 3), muito útil para agilizar na localização dos endereços de memoria / instruções.
Figura 3
O número de instruções do NEANDER-X é pequeno (apenas 16 instruções), mas apesar disso ele disponibiliza uma ajuda interativa, que é ativada pelo menu do programa, um sistema de entrada interativa de instruções e pseudo-instruções. A função de criação tutorada de programas, mostrado na Figura 4, faz com que o aluno cometa menos erros e a compreenda melhor o significado das instruções e produza um formato de instrução correto interativamente.
Figura 4
Lista de Instruções
Código binário Instrução Descrição
0000 NOP O comando NOP não realiza nenhuma operação. É usado apenas para gastar tempo.
0001 STA ender O comando STA guarda o acumulador na posição de memória indicada pelo operando ender.
0010 LDA ender O comando LDA atribui ao acumulador o conteúdo da posição de memória indicada pelo operando ender.
0011 ADD ender O comando ADD soma ao acumulador o conteúdo de uma posição de memória indicada pelo operando ender.
0100 OR ender 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.
0101 AND ender 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.
0110 NOT O comando NOT inverte os bits do acumulador.
1000 JMP ender O comando JMP (jump) desvia a execução do programa para o endereço indicado pelo operando ender.
1001 JN ender 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).
1010 JZ ender 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.
1011 JNZ ender 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.
1100 IN ender O comando IN (input) traz para o acumulador o valor lido num dispositivo externo indicado pelo operando ender. No Neanderwin os dispositivos são: chaves (endereço 0) e o status de "dado disponível" das chaves (endereço 1).
1101 OUT ender O comando OUT (output) descarrega o conteúdo do acumulador em um dispositivo externo indicado pelo operando ender. No Neanderwin o único dispositivo disponível é um visor (endereço 0).
1110 LDI imed O comando LDI (load immediate) carrega no acumulador o valor dado pelo operando imed.
1111 HLT O comando HLT (halt) para a máquina.
...