BancoASM es un proyecto educativo que demuestra cómo desarrollar una aplicación de escritorio utilizando Lenguaje Ensamblador (Assembly x86) junto con MASM32 y la Win32 API.
El objetivo del proyecto es construir un sistema bancario funcional que permita administrar cuentas de usuarios mediante una interfaz gráfica de Windows, almacenando la información en archivos locales.
Todo el sistema está implementado utilizando instrucciones de ensamblador, llamadas a la API de Windows y archivos de datos, sin utilizar lenguajes de alto nivel como C, C++ o C#.
- 🔐 Inicio de sesión mediante usuario y PIN.
- 👤 Creación de nuevas cuentas.
- 💰 Consulta de saldo.
- 📥 Depósitos.
- 📤 Retiros.
- 🔄 Transferencias entre cuentas.
- 📜 Historial de movimientos.
- 💾 Persistencia mediante archivos
.dat. - 🖥️ Interfaz gráfica desarrollada con Win32 API.
- ⚡ Código escrito completamente en Assembly x86.
- 📂 Arquitectura modular.
BancoASM
│
├── banco.dat
├── historial.dat
│
├── main.asm
├── login.asm
├── menu.asm
├── cuentas.asm
├── deposito.asm
├── retiro.asm
├── transferencia.asm
├── historial.asm
│
├── recursos.rc
├── recursos.inc
│
├── README.md
│
└── assets/
| Tecnología | Descripción |
|---|---|
| Assembly x86 | Lenguaje principal |
| MASM32 | Ensamblador Microsoft |
| Win32 API | Interfaz gráfica |
| Windows | Sistema operativo |
| Resource Script | Recursos gráficos |
| Archivos DAT | Base de datos local |
Permite acceder al sistema mediante:
- Usuario
- PIN
Los datos son validados contra el archivo:
banco.dat
Permite:
- Crear cuentas.
- Buscar usuarios.
- Validar credenciales.
- Consultar información.
Los depósitos:
- Validan el monto.
- Actualizan el saldo.
- Guardan la información.
- Registran el movimiento en el historial.
Los retiros:
- Verifican saldo suficiente.
- Actualizan la cuenta.
- Guardan cambios.
- Registran el movimiento.
Las transferencias permiten:
- Seleccionar cuenta destino.
- Validar existencia.
- Validar saldo.
- Actualizar ambas cuentas.
- Registrar historial.
Cada operación queda registrada.
Ejemplo:
isai|DEPOSITO|5000
isai|RETIRO|1000
juan|TRANSFERENCIA|2500
usuario|pin|saldo
Ejemplo:
isai|1234|15000
juan|1111|8000
admin|0000|50000
usuario|movimiento|monto
Ejemplo:
isai|DEPOSITO|5000
isai|RETIRO|1000
juan|TRANSFERENCIA|3000
+----------------+
| main.asm |
+--------+-------+
|
v
+----------------+
| login.asm |
+--------+-------+
|
v
+----------------+
| menu.asm |
+--------+-------+
|
+----------+--------+--------+----------+
| | | |
v v v v
deposito retiro.asm transferencia historial
| | | |
+----------+--------+--------+----------+
|
v
cuentas.asm
|
v
banco.dat / historial.dat
- Windows 10 / 11
- MASM32 SDK
- Resource Compiler
- Link.exe
- Microsoft Macro Assembler
Compilar los archivos:
ml /c /coff main.asm
ml /c /coff login.asm
ml /c /coff menu.asm
ml /c /coff cuentas.asm
ml /c /coff deposito.asm
ml /c /coff retiro.asm
ml /c /coff transferencia.asm
ml /c /coff historial.asm
rc recursos.rc
link /SUBSYSTEM:WINDOWS ^
main.obj ^
login.obj ^
menu.obj ^
cuentas.obj ^
deposito.obj ^
retiro.obj ^
transferencia.obj ^
historial.obj ^
recursos.res- Aprender programación en Assembly.
- Comprender la Win32 API.
- Manejo de archivos binarios y de texto.
- Arquitectura modular en ensamblador.
- Desarrollo de interfaces gráficas.
- Administración de memoria.
- Uso de recursos de Windows.
| Módulo | Estado |
|---|---|
| Login | ✅ |
| Menú Principal | ✅ |
| Gestión de Cuentas | ✅ |
| Depósitos | ✅ |
| Retiros | ✅ |
| Transferencias | ✅ |
| Historial | ✅ |
| Base de Datos | ✅ |
| Recursos | ✅ |
Isai Reyes Peña
GitHub: https://github.com/isairey
Este proyecto se distribuye bajo la licencia MIT.
