Documentação em /html/index.html
- Marcelo Piano - 200049496
- Marcelo Junqueira - 200023624
- Gabriel Borges - 202006401
- Maycon Fabio - 200059742
- Edson Sales - 190105399
- Rodar o comando
make
para compilar o projeto - Todos os .class necessário para a execução devem estar na pasta
/tests
- O arquivo Object.class deve estar na pasta
/tests
./jvmSB arquivo.class -leitor
./jvmSB arquivo.class
./jvmSB arquivo.class -debug
Se comunica com os outros módulos e gerencia a execução do programa.
Contém as estruturas de dados e funções comuns a quase todos os módulos.
Contém funções e estruturas de dados que permitem a leitura de arquivos .class e salvamento de suas informações.
Contém funções e estruturas de dados que permitem executar os métodos na ordem correta, gerenciando a pilha de frames.
Armazena os objetos e arrays instanciados da JVM, gerenciando o acesso e a alteração dos mesmos.
Armazena e permite interação com as classes e interfaces carregadas na JVM.
Contém as funções e estruturas de dados que permitem a exibição das informações contidas no .class.
Contêm a implementação das instruções da JVM.
- Abre o arquivo selecionado com o leitor
- Armazena as informações da classe no method area
- procura main e a coloca na pilha de frames
- Carrega classes super até chegar na object
- Roda blocos estáticos (clinit) do object até a classe inicial (Coloca eles na pilha de frames)
- Inicia loop de execução
- Pega o frame no topo da pilha
- PC interno ao frame diz qual instrução do code é a próxima a ser executada
- Identificar opcode e executar a operação correspondente