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

NEANDERWIN

Tese: NEANDERWIN. Pesquise 862.000+ trabalhos acadêmicos

Por:   •  29/5/2014  •  Tese  •  2.238 Palavras (9 Páginas)  •  382 Visualizações

Página 1 de 9

NEANDERWIN

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 aqui 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

 1 acumulador de 8 bits (AC)

 1 apontador de instruções de 8 bits (PC)

 1 registrador de código de condição com 2 bits: negativo (N) e zero (Z)

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 (Figura 4.1), 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 serão mostrados mais adiante.

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.

'NOP' código 0

O comando NOP é 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.

1

'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 Neanderwin 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 Neanderwin o único dispositivo disponível é

um visor (endereço 0).

'LDI imed' código 14

2

O comando LDI (load immediate) carrega no acumulador o valor dado pelo operando

imed.

'HLT'

...

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