TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Processador Neander-X

Artigo: Processador Neander-X. Pesquise 862.000+ trabalhos acadêmicos

Por:   •  1/10/2013  •  1.639 Palavras (7 Páginas)  •  740 Visualizações

Página 1 de 7

Neanderwin

1. Apresentação

O NeanderWin é um simulador da máquina Neander, definida no livro do Raul F. Weber (UFRGS), Fundamentos de Arquitetura de Computadores, Ed. Sagra Luzzatto. A máquina original foi estendida nesse simulador para incluir algumas instruções para carga de dados imediatos no acumulador e operações de entrada e saída de dados para dois dispositivos mapeados em nosso simulador: um teclado e um visor.

Algumas características do processador Neander são:

• Largura de dados e endereços de 8 bits;

• Dados representados em complemento a dois;

• Acumulador de 8 bits (AC);

• Apontador de instruções de 8 bits (PC);

• Registrador de código de condição com 2 bits: negativo (N) e zero (Z).

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. Estão disponíveis versões tanto para o sistema operacional Windows e Linux. O código fonte está disponível mediante solicitação.

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.

O NEANDERWIN foi estendido para ter mais dois modos de endereçamento: imediato e indireto. Maiores detalhes podem ser vistos na seção 3.

1. Diagrama em Blocos

A seguir apresentamos o diagrama em blocos do processador NEANDER:

1. Listagem geral das instruções

As instruções podem ter um ou dois bytes. Nas instruções com apenas um byte, os 4 bits mais significativos contém o código da operação. Nas instruções com dois bytes, que no Neander são aquelas que fazem referência a um operando na memória, o segundo byte contém o endereço de memória deste operando.

7 4 3 0

Código Não utilizados

endereço direto

Nota: Os 4 bits de mais baixa ordem do primeiro byte são reservados para futuras expansões. Existem também dois códigos que não têm instruções associadas.

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

...

Baixar como (para membros premium)  txt (9.2 Kb)  
Continuar por mais 6 páginas »
Disponível apenas no TrabalhosGratuitos.com