Gigaflops :: Assembly :: Simpleton
Make your own free website on Tripod.com

   Simpleton

Simpleton

Descrição

Esta página descreve a utilização de um applet que simula um computador simples.

O simulador possui uma plataforma própria onde executa seus programas. Ele se utiliza de uma linguagem assembler para facilitar a construção de programas.

A lingugem assembler está a apenas um nível da linguagem de máquina, o que o compilador faz é transformar os comandos em numeros e posições de memória que possam ser tratados pelo computador virtual. Logo o programador deve construir o programa baseado em instruções bem simples.

A estrutura do simpleton é composta por uma memória com 1000 posições, uma posição de memória pode ser ocupada por um número (inteiro ou real), por uma instrução de máquina ou por um caractere. Além da memória temos um acumulador, que é utilizado para fazer cálculos aritiméticos. A nossa plataforma não suporta uma instrução que opere sobre duas áreas de memória, logo para somar, ou realizar qualquer operação sobre dois números, devemos carregar um dos numeros no acumulador e em seguida realizar a operação passando um outro argumento que esteja na memória.

Funções

Logo abaixo segue uma tabela contendo os comandos básicos da linguagem e sua descrição:


READLê um numero p/ a memória
WRITE Escreve um numero no vídeo
WLNInicia uma nova linha no video
RSTRLê um string (texto) p/ a memória
WSTRImprime um string no video
LOADCarrega um valor no acumulador
STOREDevolve o valor do acumulador para a memória
ADD Soma um valor ao conteúdo do acumulador
SUBSubtrai um valor do acumulador
DIV Divide o valor do acumulador
MULTMultiplica o valor do acumulador
MOD Aplica a operação de módulo ao valor do acumulador
POTEleva acumulador a potencia
BRANCH Desvia o fluxo p/ uma outra instrução
BRNEGDesvia o fluxo se o acumulador for negativo
BRZERO Desvia o fluxo se o acumulador for zero
HALTEncerra a execução do programa

A linguagem não diferencia letras maiúsculas de letras minúsculas, isto é, "READ", "ReAd" ou "read" são a mesma palavra.

Nos comandos de mudança de fluxo o operador é necessáriamente um numero de instrução, as instruções começam do zero, e a cada linha tem-se uma nova instrução.

Após cada comando que exige um operando deve haver um caracter ">", os comandos que não exigem operando podem aparecer sozinhos na linha. Deve haver APENAS UM comando por linha, o terminador de um comando é o caractere de final de linha.

Exemplos de comandos válidos:

READ > NUM
wstr > NOME
wstr > "String constante a ser impresso no vídeo"
ADD > 20
add > num
Branch > 12
WLN
POT > expoente
HALT



Applet