quarta-feira, janeiro 21, 2009

Simulando Um Computador - 3/4

Neste post vamos ver a operação do Simulador de Computador. O programa simulador contém tanto o interpretador das instruções do COMP como o monitor que fornece comandos para entrada e execução de programas no COMP.

A figura abaixo mostra a tela do programa simulador (clique para ampliar):


Na parte superior são apresentados os registradores AC, C e CP e a instrução atual (IA) em código de máquina e em assembler. Em seguida é mostrado o conteúdo da memória.

A parte seguinte é o display do COMP, usado tanto pelo interpretador como pelo monitor.

Finalmente, um editbox permite a entrada de comandos para o monitor e a entrada de dados para o programa simulado. A entrada de comandos ou dados é finalizada pelo botão Exec ou pela tecla Enter.

Os Comandos do Monitor

O monitor indica com > quando está pronto para receber um novo comando. Os comandos disponíveis são:
  • A end - Asm, permite entrar com instruções em assembler. As instruções são colocadas a partir da posição de endereço end. A entrada de uma linha vazia encerra o comando.
  • C - Clear, limpa os registradores e a memória do COMP.
  • E end Edit, permite entrar diretamente com valores na memória do COMP, a partir da posição de endereço end. A entrada de uma linha vazia encerra o comando.
  • L - Load, permite carregar os registradores e a memória do COMP a partir de um arquivo gerado pelo Save.
  • R end vel - Run, executa um programa. A execução começa pelo endereço end. vel controla a velocidade da execução, definindo o tempo para executar cada instrução (em décimos de segundo).
  • S - Save, salva os registradores e a memória do COMP em um arquivo.
Um Exemplo

Quem quiser ver o simulador na prática, pode baixar o programa daqui. Execute SimComp.exe e siga os passos abaixo:
  • Digite A 0
  • Em seguida, digite as instruções em assembler abaixo (digitando ao final de cada uma). Encerre a entrada do programa digintando um com o editbox vazio.
  • Execute o programa com o comando R 0 10 .
O programa abaixo mostra na tela os números 0009, 0008, ... até 0000:
LDA $9
STA 10
OUT 10
SUB $1
BCY 6
BRN 1
STP
Na quarta e última parte vamos dar uma examinada no código do simulador e ver como ele funciona por dentro.

Nenhum comentário: