Rodando a interface gráfica
Requisitos:
Possuir o SDK do JavaFX no computador, faça download pelo site: https://gluonhq.com/products/javafx/
Extraia o arquivo .zip
Execute o programa com o seguinte comando:
java -jar --module-path 'caminho_para_sdk_javafx/lib/' --add-modules javafx.controls,javafx.fxml .\trabalho-ps-ufpel-2022-1.jar
Caso contenha espaços no caminho do SDK do JavaFX, coloque entre aspas
Exemplo:
java -jar --module-path 'C:/Program Files/JavaFX/javafx-sdk-19/lib/' --add-modules javafx.controls,javafx.fxml .\trabalho-ps-ufpel-2022-1.jar
Neste exemplo o SDK do JavaFX está localizado na pasta C:/Program Files/JavaFX/
O arquivo .jar
foi criado para a versão 18 do JDK, caso sua versão seja anterior, atualize ou crie outro arquivo .jar
para sua versão
Você pode verificar sua verão utilizando o comando java -version
Compilando
É requisito para compilação ter a biblioteca do JavaFX
Para compilar, clone o projeto
git clone https://github.com/gstimm/trabalho-ps-ufpel-2022-1
Entre na pasta do projeto
cd trabalho-ps-ufpel-2022-1
cd src
Compile o projeto com o seguinte comando
javac main/Main.java -d ../bin --module-path "caminho_para_sdk_javafx\lib" --add-modules javafx.controls,javafx.fxml
Exemplo:
javac main/Main.java -d ../bin --module-path "C:\Program Files (x86)\JavaFX\javafx-sdk-19\lib" --add-modules javafx.controls,javafx.fxml
Copie o arquivo main/gui/GUI.fxml
com a descrição da interface gráfica para junto dos arquivos compilados
cd ..
cp .\src\main\gui\GUI.fxml .\bin\main\gui\
Entre na pasta bin
cd bin
Execute a máquina virtual com o comando
java --module-path "caminho_para_sdk_javafx\lib" --add-modules javafx.controls,javafx.fxml main.Main
Exemplo
java --module-path "C:\Program Files (x86)\JavaFX\javafx-sdk-19\lib" --add-modules javafx.controls,javafx.fxml main.Main
Saída dos módulos
O montador, ligador, carregador e processador de macros podem ser acessados pela interface gráfica no menu File
Processador de macros
Recebe como entrada um arquivo .asm
e vai expandir as macros e remover os comentários do arquivo, salvando o resultado em um arquivo de mesmo nome com a extensão .MXF (Macro eXpanded File)
Montador
O montador recebe como entrada o arquivo com as macros já expandidas, se o arquivo contiver macros não expandidas isso acarretará em um erro na execução do montador.
O montador retorna três arquivos:
.OBJ -> arquivo objeto que contém o mapa de realocação e o código objeto em formato texto
.TABLE -> arquivo com informações das tabelas de usos interno, definições globais e também informações de tamanho do módulo e início do módulo
.LST -> arquivo com informações de qual linha do arquivo de entrada gerou qual código objeto e o endereço
Ligador
O ligador recebe como entrada os arquivos .OBJ
dos módulos que serão ligados, vai procurar para cada arquivo selecionado, o arquivo .TABLE
correspondente na mesma pasta e retorna um arquivo .HPX
com a ligação dos módulos, com o nome do primeiro módulo escolhido para ser ligado
Carregador
O carregador recebe um arquivo objeto e coloca na memória da máquina realocando os endereços de acordo com o mapa de realocação do arquivo