-
Clonar el repositorio o descargar el archivo .zip
-
Ubíquese dentro del directorio creado y ejecute una ventana de comandos allí ingrese lo siguiente:
a. pip install -r requirements.txt (se recomienda el uso de una virtual enviroment)
b. python main.py
verá entonces: En el cli tenemos las siguientes opciones que se deben ejecutar en el siguiente orden
-
assemble [a]: escriba a, luego enter se le pedirá el nombre del programa *.z80.asm, en nuestro caso usaremos e_div.z80.asm
El nombre puede o no tener la extensión este paso genera los archivos relocalizables .loc y .tag luego de cargar el archivo proceda a generar el enlazamiento
-
Link [L]: a partir de los archivos generados por el programa en el paso anterior resuelve las posiciones relocalizables
una vez ensamblado y enlazado, se efectúa la carga del programa en la memoria, para ello seguiremos en:
-
Run [r]: le mostrará la situación actual del sistema en 3 partes principales:
Z80 cuenta con todos los registros
Buses muestra el último dato que se encuentra en cada bus al finalizar cada proceso
Memory muestra aquellas posiciones de memoria que se encuentren inicializadas o referenciadas ya sea por PC o SP
En la imagen anterior se puede notar cómo la memoria se encuentra vacía, por lo que una vez más deberá ingresar “l” para cargar definitivamente el programa en memoria:
Para procesar cuenta con 2 opciones
-
Step [s]: una visualización paso a paso de cada las instrucciones, procesa la instrucción actual en PC
-
Process [p]: ejecuta todo el programa hasta que finalize ya sea porque no existe la instruccion en el PC o el programa llego a la instruccion HALT.
Al terminar de procesar se resaltará cada cambio que suceda en el procesador.
-
Repo
├─── assembler
│ ├─── __init__.py
│ └─── assembler.py
├─── linker
│ ├─── __init__.py
│ └─── linker.py
├─── loade
│ ├─── __init__.py
│ └─── loader.py
├─── processor
│ ├─── __init__.py
│ ├─── Z80.py
│ ├─── Buses.py
│ ├─── Memory.py
│ └─── instructions
│ ├─── __init__.py
│ ├─── ALU.py
│ ├─── load_exchange.py
│ ├─── rotate_shift.py
│ ├─── bit_manipulation.py
│ ├─── jump_call.py
│ └─── CPU_control.py
├─── utils
│ ├─── __init__.py
│ ├─── enums.py
│ ├─── cli.py
│ ├─── Debug.py
│ └─── util.py
├─── CLI
│ ├─── __init__.py
│ └─── cli.py
├─── __init__.py
├─── main.py
├─── .gitignore
└─── README.md