|
O Emulador tem 100 posições de memória, um acumulador, um dispositivo para entrada de dados, um dispositivo para saída de dados e 10 instruções (como sobrecarga de instrução na intrução "0"). Na figura abaixo está (de modo estático, é apenas uma figura) a interface Emulador do iCG.
O Emulador também implementa um recursos especial para educação. Ele pode ser incorporado de modo transparente ao sistema Moodle, utilizando outro pacote livre que disponibilizamos, o iTarefa. O Emulador ainda dispõe de recurso para autoria de exercícios com avaliação automática. Entretanto, ainda é necessário melhorar a interface para facilitar a tarefa de construção de exercícios (se você é programador e está disposto a colaborar, pegue o código fonte do iCG e tente melhor esta inteface...).
As instruções implementadas no iCG estão descritas na tabela abaixo.
Instrução | Representação | Explicação |
---|---|---|
0EE | AC <- cEE | acumulador recebe conteúdo da memória de endereco EE |
1EE | EE <- cAC | memória de endereco EE recebe conteúdo do acumulador |
2EE | AC <- cAC + cEE | acumulador recebe conteúdo do acumulador somado com conteúdo da memória de endereco EE |
3EE | AC <- cAC - cEE | acumulador recebe conteúdo do acumulador menos o conteúdo da memória de endereco EE |
4EE | AC <- cAC * cEE | acumulador recebe conteúdo do acumulador multiplicado pelo conteúdo da memória de endereco EE |
5EE | AC <- cAC / cEE | acumulador recebe conteúdo do acumulador dividido pelo conteúdo da memória de endereco EE |
6EE | se cAC>0, faça EPI <- EE | se conteúdo do acumulador for positivo (estrito), desvie execução para posição de memória EE |
7EE | leia valor e guarde em EE | leia um valor e armazene-o na posição de memória EE |
8EE | escreva o valor em EE | escreva o valor na posição de memória EE |
9EE | EPI <- EE | desvie execução para posição de memória EE |
0-N | AC <- N, sendo N inteiro | carregue no acumulador a constante N (deve ser um inteiro entre -99 e 99) |
000 | final de execução | instrução que indica final de execução de programa (mesmo que no meio do código) |