• Labs
  • Lab 16: Assembler

parte 5

Implemente o método initialize da classe SymbolTable utilizando os conceitos visto nos outros labs.

O initialize utiliza outros métodos dessa classe, edite eles:

    public void addEntry(String symbol, int address) {
        symbolTable.put(symbol, address);
    }
  public Boolean contains(String symbol) {
        return symbolTable.containsKey(symbol);
    }
 public Integer getAddress(String symbol) {
        return symbolTable.get(symbol);
    }

Agora com os demais métodos implementando faça o initialize.

Tip 1

Use os testes para ajudar entender o que o método faz.

Tabela de símbolos? De uma lida na teoria/Tabela de Símbolos

Teste Final

Apenas após terminar todos os arquivos.

Por fim, iremos traduzir todos os arquivos nasm da APS-F usando o Assembler que vocês criaram. Para isso, execute no terminal os comandos:

$ ./genJAR.py
$ ./compileALL.py
$ pytest -s

O primeiro gera o .jar a partir do código de vocês, enquanto o segundo traduz todos os arquivos nasm. O terceiro roda os arquivos Assembly no CPU.