Simulador Little Man Computer
Pronto
Rodar na velocidade média - 0.5 segundos por ciclo
Selecione um exemplo para carregar:
O Editor de Código é baseado em um sistema em grade, com colunas para você entrar com os rótulos, operadores e operandos. A primeira coluna é usada para mostrar qual linha de código está sendo executado quando o programa está rodando.
Você pode mover entre as linhas e colunas usando a tecla Tab, ou usando as setas do teclado.
Ctrl-Z e Ctrl-Y vão desfazer e refazer a última edição, mas apenas se você não estiver editando uma celula do Editor de Código.
Selecione uma linha clicando em qualquer lugar da linha. A linha será destacada.
Você pode deletar a linha atual usando a tecla Delete. Todas as linhas subsequentes serão movidas para cima.
Pressionando a tecla Ins ou Insert criará uma nova linha acima da linha atual, movendo todas as linhas subsequentes para baixo.
Quando você estiver satisfeito com seu código, pressione o botão Montar, e o simulador LMC irá verificar e montar seu código na memória. Se houver algum erro, uma mensagem irá aparecer na janela do console, indicando a linha e o problema.
O botão de Carregar pode ser usado para carregar programas pré-escritos do seu computador.
O botão de Salvar irá salvar em um arquivo de texto o programa atual no seu computador.
O botão Imprimir irá criar e baixar um arquivo PDF com o programa atual.
O Little Man Computer (LMC) é um modelo simplificado de um computador, baseado na arquitetura de Von Neumann.
Esse app web provê um simulador do LMC, para que voc~e possa escrever programas no assembler do LMC e possa montar e executar esses programas. O simulador irá mostrar o estado de todos os registradores na CPU, e também o estado da memória do LMC.
O fluxo de dados da CPU é demonstrado, e você pode pausar e resumir a execução do seu programa a qualquer momento.
O editor de código tem colunas individuais para rótulos (labels), operadores (operators) e operandos (operands). Para aprender mais sobre como o editor funciona, clique no botão "Ajuda" abaixo da janela do código. Você pode usar Ctrl-Z para desfazer qualquer ação do editor.
Há alguns exemplos de programas que você pode testar - apenas clique no botão "Exemplos" abaixo para mais informações.
Instrução | Mnemonico | Código de máquina | Explicação |
---|---|---|---|
Carregar acumulador | LDA | 5xx | Carrega o conteúdo de um endereço de memória (xx) no acumulador |
Armazena acumulador | STA | 3xx | Armazena o conteúdo do acumulador no endereço de memória (xx) |
Soma | ADD | 1xx | Soma o conteúdo do endereço de memória (xx) ao valor do acumulador |
Subtrai | SUB | 2xx | Subtrai o conteúdo do endereço de memória (xx) do valor do acumulador |
Entrada | INP | 901 | Copia o valor da caixa de entrada para o acumulador |
Saída | OUT | 902 | Copia o valor do acumulador para a caixa de saída |
Ramifica | BRA | 6xx | Ramifica (pula) para a instrução no endereço de memória (xx) |
Ramifica se positivo | BRP | 8xx | Se o valor no acumulador for positivo (incluindo zero), então ramifica para a instrução no endereço de memória (xx) |
Ramifica se zero | BRZ | 7xx | Se o valor no acumulador for zero, então ramifica para a instrução no endereço de memória (xx) |
Parar | HLT | 000 | Para a execução do programa |
Dado | DAT | valor do dado | Indica que a posição atual de memória contém um dado |