/ps-z808

Trabalho avaliativo para a disciplina de Programação de Sistemas para o curso de Ciência da Computação.

Primary LanguageJava

TRABALHO FINAL PS

📟 sistema_computacional_hipotetico-Z808

Sistema Computacional Hiipotetico Z808 baseado na arquitetura dos processadores da família INTEL 8086/88 desenvolvido como trabalho avaliativo da disciplina de Programação de Sistemas

Grupo Adas & CG

👩‍💻 @BiancaBDullius
👩‍💻 @Caroline-Camargo
👨‍💻 @CloudioJ
👩‍💻 @dudaac1
👨‍💻 @SteinGB
👩‍💻 @jjuliar
👩‍💻 @juliaveiga
👩‍💻 @majudlorenzoni
👩‍💻 @Yasmin-Camargo

⏯️ Como Executar

Este projeto foi desenvolvido com o auxílio da IDE Apache Netbeans 17.0 com o JDK 17.
Para executar o programa, clone o repositório:
git@github.com:Yasmin-Camargo/sistema_computacional_hipotetico-Z808.git
A execução do projeto deve ser feita a partir da classe JanelaInicia.java.

📌 Caso encontre dificuldades para executar, experimente baixar por este link

📋 Etapas de desenvolvimento

O processo de desenvolvimento do simulador Z808 consistiu em quatro fases distintas: Executor, Montador, Processador de Macros, Carregador e Ligador

image

1️⃣ Executor

Focado na execução das instruções própriamente ditas e em uma interface visual.

image

2️⃣ Montador

Foi implementado o montador de dois passos, sendo responsável pela tradução do código-fonte em código de máquina.

image

3️⃣ Processador de Macros

Etapa dedicada a expansão de macros, foi desenvolvido em uma só passagem permitindo macros aninhadas e chamadas aninhadas.

4️⃣ Carregador e Ligador

Nesta fase é realizado o carregamento e a vinculação de módulos para formar um programa funcional, sendo feito em duas passagens.

🔎 Códigos das Instruções

Operação Código de Máquina Modo de endereçamento
add AX, AX 03 C0 Registrador
add AX, DX 03 C2 Registrador
add AX, opd 05 Direto
add AX, opd 04 Imediato
div AX, SI F7 F6 Registrador
div AX, AX F7 C0 Registrador
sub AX, AX 2B C0 Registrador
sub AX, DX 2B C2 Registrador
sub AX, opd 2D Direto
sub AX, opd 2C Imediato
mul AX, SI F7 F5 Registrador
mul AX, AX F7 F0 Registrador
cmp AX,opd 3D Direto
cmp AX,opd 3C Imediato
cmp AX,DX 3B C2 Registrador
and AX,AX 23 C0 Registrador
and AX,DX 23 C2 Registrador
and AX,opd 25 Direto
and AX,opd 24 Imediato
not AX F8 C0 Registrador
or AX, AX 0B C0 Registrador
or AX, DX 0B C2 Registrador
or AX,opd 0D Direto
or AX,opd 0C Imediato
xor AX,AX 33 C0 Registrador
xor AX,DX 33 C2 Registrador
xor AX,opd 35 Direto
xor AX,opd 34 Imediato
jmp opd EB Direto
jz opd 74 Direto
jnz opd 75 Direto
jp opd 7A Direto
call opd E8 Imediato
call opd E7 Direto
ret EF -
hlt EE -
pop reg 57 C0 Registrador
pop reg 57 C2 Registrador
pop opd 59 Direto
pop opd 58 Imediato
popf 9D Registrador
push reg 50 C0 Registrador
push reg 50 C2 Registrador
pushf 9C Registrador
store reg 07 C0 Registrador
store reg 07 C2 Registrador
read opd 12 Imediato
read opd 13 Direto
write opd 08 Imediato
write opd 09 Direto
mov AX, opd 14 Imediato
mov AX, opd 15 Direto
mov AX, DX 16 C2 Registrador