JLYamin / monta-dor

Repositório do Primeiro Trabalho de Software Básico da Universidade de Brasília

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Montador e Simulador de Assembly Inventado

Disciplina de Software Básico - Turma B - 2019/2

Alunos:

  • João Lucas Azevedo Yamin Rodrigues da Cunha - 17/0013731
  • Thiago Luis Rodrigues Pinho - 15/0065205

Informações a respeito do trabalho:

Este trabalho foi desenvolvido com C++ utilizando-se dois sistemas operacionais diferentes: tanto no Ubuntu quanto no Linux Subsystem do Windows.

Este trabalho foi feito orientado a testes ao final desse documento há uma explicação de como rodar os testes.

Nós nos organizamos por funcionalidades a serem cumpridas

Montador:

  • Leitura
    • Receber e abrir o arquivo
    • Contador de endereços/posição
  • Parser
    • Detecção das áreas de texto e data
    • Detecção das linhas
    • Detecção das instruções
    • Detecção dos argumentos das instruções
    • Detecção de rótulos (com ou sem enter após)
  • Tabelas
    • Tabela de Instruções para consulta
    • Montagem da tabela de símbolos
  • Detecção de Erros
    • Detecção de erros léxicos
    • Detecção de erros sintáticos
    • Detecção de erros semânticos
    • Exibição das linhas e classificação dos erros
  • Código de Máquina
    • Adicionar o opcode
    • Resolver as pendências dos endereços da Tabela de Símbolos
  • Arquivos de Saída
    • Geração do arquivo pré-processado (não sei se entendi do que se trata)
    • Geração do arquivo objeto contendo o código de máquina

Simulador:

  • Receber o programa de entrada
  • Identificar as instruções de INPUT e OUTPUT, exibindo o texto pedido
  • Identificar e executar as instruções
  • Exibir o conteúdo do acumulador ao executar uma instrução
  • Exibir o endereço e conteúdo de endereços modificados pela instrução

Instalação

Depois de extrair ou clonar o repositório, entre na pasta principal e digite em seu terminal: Para compilar o montador:

make montador

Para compilar o simulador

make simulador

Usando o Montador e o Simulador

Após isso, você pode executar o montador ou o simulador usando o comando

./montador bin.asm
./simulador bin.obj

Para qualquer outro arquivo .asm dentro da pasta entradas_asm, basta digitar seu nome com a extensão. Também é possível especificar qual pasta você gostaria de buscar o arquivo a ser aberto.

./montador bin.asm ./entradas_asm/
./simulador bin.obj ./saidas/

Executando os testes

Na pasta principal: Para compilar todos os testes, basta digitar:

make all_tester

Se você quiser ver os testes antes de executá-los:

./all_tester --list-tests

Ou pode somente rodar os testes:

./all_tester

Para limpar arquivos intermediários

make clean

About

Repositório do Primeiro Trabalho de Software Básico da Universidade de Brasília


Languages

Language:C++ 99.4%Language:Makefile 0.3%Language:Assembly 0.3%