G - Assembler
| Entrega |
|---|
| Quarta - 05/11 |
Nesse projeto iremos criar o programa assembler que é responsável por traduzir os códigos escrito em Assembly para a linguagem de máquina.
Instruções
As instruções técnicas de como começar o projeto estão no laboratório 16.
Módulos a serem implementados
O projeto no total possui 5 módulos, sendo que o módulo AssemblerZ01.java já está pronto.
Tip 1
Os módulos estão listados de maneira Top - Down
- AssemblerZ01
- Arquivo :
AssemblerZ01.java - Descrição : Main do projeto. Recebe como parâmetro o nome do arquivo
.nasme o nome do arquivo binário de máquina.hack. a ser escrito, passa essas informações para a classe Assemble. Essa classe que inicializa a tabela de símbolo (fillSymbolTable) e chama o métodogenerateMachineCodepara efetivamente gerar o arquivo de saída. - Dependências :
Assemble.java
- Arquivo :
Tip 2
Já está pronto, não precisa mexer.
-
Assemble
- Arquivo:
Assemble.java - Descrição: Classe responsável por criar o código de máquina, ela que efetivamente faz a varredura do arquivo
.nasmde entrada e escreve o arquivo.hackde saída, gerando o código de máquina. - Dependências:
Code.java,Parser.java,SymbolTable.java
- Arquivo:
-
Code
- Arquivo :
Code.java - Descrição : Traduz mnemônicos da linguagem assembly para códigos binários da arquitetura Z0.
- Dependências : none
- Arquivo :
-
Parser
- Arquivo :
Parser.java - Descrição : Encapsula o código de leitura. Carrega as instruções na linguagem assembly, analisa, e oferece acesso as partes da instrução (campos e símbolos). Além disso, remove todos os espaços em branco e comentários.
- Dependências : none
- Arquivo :
-
SymbolTable
- Arquivo :
SymbolTable.java - Descrição : Mantém uma tabela com a correspondência entre os rótulos simbólicos e endereços numéricos de memória.
- Dependências : none
- Arquivo :
Rubrica
| Conceito | |
|---|---|
| I | - Menos da metade dos módulos funcionando |
| D | - Teste unitário ou Teste integração não passa |
| C+ | - Criado assembler a partir de estrutura de código disponibilizada |
| - Todos os testes unitários passam no teste | |
| B+ | - Verifica se instrução de jump é seguida de NOP, caso contrário dá erro |
| A+ | - Implementando modo verbose (-v) que possibilita analisar o assembler e suas etapas |
