A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

NEANDERWin - Simulador

Apresentações semelhantes


Apresentação em tema: "NEANDERWin - Simulador"— Transcrição da apresentação:

1 NEANDERWin - Simulador
Fernando Cardeal

2 INTRODUÇÃO O Neanderwin é um simulador didático elaborado para mostrar os primeiros conceitos sobre o funcionamento de um processador para alunos das disciplinas de Organização e/ou Arquitetura de Computadores.

3 INTRODUÇÃO Simula uma máquina baseada em acumulador, de acordo com a definição da máquina Neander, apresentada no livro de Raul F. Weber (UFRGS), Fundamentos de Arquitetura de Computadores, Ed. Bookman.

4 Máquina NEANDER A máquina original foi estendida para incluir instruções como: carga de dados imediatos no acumulador, modo indireto de endereçamento e operações de entrada e saída de dados. Para realizar as operações de entrada e saída, estão mapeados dois dispositivos no simulador: um teclado e um visor.

5 Editor NeanderWin O Neanderwin possui também um editor para escrever os programas em linguagem de montagem (assembly), e um montador/carregador embutido que compila o programa editado e carrega na memória do simulador para a execução.

6 Memória O tamanho da memória é limitado pela definição das instruções da máquina Neander, ou seja, 256 bytes.

7 Características do Processador
Largura de dados e endereços de 8 bits; Dados representados em complemento a 2; Acumulador de 8 bits (ACC); Apontador de instruções de 8 bits (PC); Registrador de Código de Condições com 2 bits: Negativo e Zero.

8 Modos de endereçamento
Direto na versão original (Neander); O NeanderWin possui também os endereçamentos Imediato e Indireto. No modo de endereçamento indireto o segundo byte aponta para um endereço de memória onde está armazenado o endereço do operando da instrução. Para este modo ser invocado o operando ender deve ser precedido pelo

9 Diagrama do NEANDER

10 INSTRUÇÕES DO NEANDERWin

11 INSTRUÇÕES INSTRUÇÃO CÓDIGO HEXA DESCRIÇÃO NOP
A instrução NOP não realiza nenhuma operação. É utilizada apenas para gastar tempo. STA ender 1 A instrução STA transfere o valor do acumulador para a posição de memória indicada pelo operando ender. LDA ender 2 A instrução LDA atribui ao acumulador o conteúdo da posição de memória indicada pelo operando ender. ADD ender 3 A instrução ADD soma ao acumulador o conteúdo de uma posição de memória indicada pelo operando ender. OR ender 4 A instrução OR realiza um "ou" lógico entre o acumulador e o conteúdo de uma posição de memória indicada pelo operando ender.

12 INSTRUÇÕES INSTRUÇÃO CÓDIGO HEXA DESCRIÇÃO AND ender 5
A instrução 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 6 A instrução NOT inverte os bits do acumulador. SUB ender 7 A instrução SUB subtrai do acumulador o conteúdo de uma posição de memória indicada pelo operando ender. JMP ender 8 A instrução JMP (jump) desvia a execução do programa para o endereço indicado pelo operando ender. JN ender 9 A instrução 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 resultado com o bit 7 ligado (negativo).

13 INSTRUÇÕES INSTRUÇÃO CÓDIGO HEXA DESCRIÇÃO JZ ender A
A instrução 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 resultado igual a zero. JNZ ender B A instrução 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 resultado diferente de zero. IN ender C A instrução IN (input) carrega no acumulador o valor lido num dispositivo externo indicado pelo operando ender. Em nosso simulador os dispositivos são: chaves (endereço 0) e o status de "dado disponível" das chaves (endereço 1).

14 INSTRUÇÕES INSTRUÇÃO CÓDIGO HEXA DESCRIÇÃO OUT ender D
A instrução OUT (output) transfere o valor do acumulador para um dispositivo externo indicado pelo operando ender.  Em nosso simulador o único dispositivo disponível é um visor (endereço 00) LDI imed E A instrução LDI (load immediate) carrega no acumulador o valor dado pelo operando imed. HLT F O comando HLT (halt) pára a máquina.

15 DIRETIVAS PARA O MONTADOR
Comentários Os comentários são começados por ponto e vírgula (;) e podem também ocorrer no final das linhas de instruções. Rótulos Um rótulo é um nome dado à próxima posição de memória. Deve ser seguido por dois pontos (:). ORG ender A diretiva ORG (origin) indica ao montador que a próxima instrução ou dados devem ser colocados na posição de memória indicada por ender. var EQU imed A diretiva EQU (equate) atribui um nome (rótulo) a um certo valor. Esse comando é frequentemente usado para especificar variáveis que são posicionadas em um endereço específico de memória.  Por exemplo, para posicionar a variável X no endereço 100 use: X EQU 100.

16 DIRETIVAS PARA O MONTADOR
END ender A diretiva END indica que o programa fonte acabou. O operando ender é usado para pré-carregar o PC com o endereço inicial de execução do programa. DS imed A diretiva DS (define storage) reserva um número de palavras na memória definido pelo valor imed. DB imed A diretiva DB (define bytes) carrega nesta palavra de memória o valor definido pelo operando imed.

17 Exemplo de Programa X EQU 128 ; define o endereço de X (80h) Y EQU 129 ; define o endereço de Y W EQU 130 ; define o endereço de W Z EQU 131 ; define o endereço de Z ORG 0 ; O programa começa no endereço 0 LDA X ; Carregue no ACC o conteúdo de X ADD Y ; Some ACC + Y e deixe no ACC ADD W ; Some ACC + W e deixe no ACC STA Z ; Guarde o resultado em Z OUT 00 ; Exiba o resultado no visor HLT ; Pare

18 Exemplo de Contagem Regressiva
ORG 100 X: DS 1 UM: DB 1 STATUS1: IN 00 ; Lê o primeiro valor LOOP: STA X ; Armazena o conteúdo na memória OUT 00 ; Mostra o valor lido no visor LDA X ; Lê o ultimo valor armazenado SUB UM ; Decrementa JN FIM ; Se for negativo pula para FIM JMP LOOP ; Desvia para LOOP FIM: HLT ; FIM END STATUS1 ; Termina o código

19 REFERÊNCIAS WEBER, Raul Fernando. Fundamentos de Arquitetura de Computadores. 4ª ed. Porto Alegre: Bookman, 2012.


Carregar ppt "NEANDERWin - Simulador"

Apresentações semelhantes


Anúncios Google