ATM ASM es un simulador de cajero automático desarrollado completamente en MASM64 (Microsoft Macro Assembler 64 bits).
El proyecto tiene como finalidad demostrar el desarrollo de una aplicación modular en lenguaje ensamblador, implementando operaciones bancarias similares a las utilizadas por los cajeros automáticos reales.
Todo el sistema está dividido en módulos independientes para facilitar su mantenimiento y escalabilidad.
- 🔐 Inicio de sesión mediante número de cuenta y NIP.
- 👤 Administración de usuarios.
- 💰 Consulta de saldo.
- 💵 Depósitos.
- 💸 Retiros.
- 🔄 Transferencias entre cuentas.
- 📜 Historial de movimientos.
- 🔑 Cambio de NIP.
- 🛡️ Validaciones de seguridad.
- 📂 Persistencia de información mediante archivos.
- 📊 Base de datos simulada.
- 🏦 Panel de administrador.
- 📁 Arquitectura modular.
- MASM64
- Assembly x64
- Windows API
- MSVCRT
- Archivos DAT
- Visual Studio
- Microsoft Macro Assembler
ATM-ASM/
│
├── main.asm
├── login.asm
├── menu.asm
├── consulta.asm
├── deposito.asm
├── retiro.asm
├── transferencia.asm
├── historial.asm
├── cambio_nip.asm
├── admin.asm
├── util.asm
│
├── macros.inc
├── recursos.inc
│
├── banco.dat
├── Historial.dat
│
├── README.md
│
└── screenshots/
- Número de cuenta.
- Validación del NIP.
- Máximo de intentos.
- Bloqueo de acceso.
Permite visualizar:
- Número de cuenta.
- Titular.
- Saldo disponible.
- Validación del monto.
- Actualización del saldo.
- Registro del movimiento.
- Validación de saldo.
- Validación de múltiplos de 50.
- Actualización del saldo.
- Registro del movimiento.
- Cuenta destino.
- Validación de cuenta.
- Actualización de ambas cuentas.
- Registro de operación.
Registro completo de:
- Inicio de sesión.
- Depósitos.
- Retiros.
- Transferencias.
- Cambio de NIP.
- Consultas.
- Validación del NIP anterior.
- Confirmación.
- Actualización del archivo.
El panel administrativo permite:
- Ver usuarios.
- Crear cuentas.
- Eliminar cuentas.
- Modificar saldo.
- Consultar historial.
- Respaldar la base de datos.
El sistema utiliza archivos planos.
Cuenta|Nombre|NIP|Saldo|Estado|TipoCuenta
Ejemplo
10000001|ISAI REYES PEÑA|1234|25000|ACTIVO|AHORRO
Cuenta|Fecha|Hora|Operacion|Monto|Saldo|Descripcion
Ejemplo
10000001|08/07/2026|08:15|DEPOSITO|500|25500|Deposito ATM
main.asm
│
▼
login.asm
│
▼
menu.asm
│
┌────┼────────────────────────────┐
│ │ │ │ │ │ │
▼ ▼ ▼ ▼ ▼ ▼ ▼
Consulta
Deposito
Retiro
Transferencia
Historial
Cambio NIP
Administrador
- Cuenta existente.
- NIP correcto.
- Saldo suficiente.
- Monto positivo.
- Transferencias válidas.
- Cambio correcto de NIP.
- Cuenta activa.
- Cuenta no bloqueada.
- Máximo de intentos.
- Múltiplos de 50.
Compilar utilizando MASM64.
Ejemplo:
ml64 /c *.asm
link *.obj msvcrt.lib kernel32.lib- Arquitectura de 64 bits.
- Programación modular.
- Uso de procedimientos.
- Uso de macros.
- Manejo de archivos.
- Manejo de memoria.
- Validaciones.
- Persistencia de datos.
- Simulación bancaria.
- Código reutilizable.
- Practicar programación en ensamblador.
- Comprender el manejo de archivos.
- Simular un sistema bancario.
- Aplicar programación modular.
- Implementar estructuras reutilizables.
- Microsoft Macro Assembler.
- Windows API.
- MSVCRT.
- Procedimientos.
- Macros.
- Buffers.
- Conversión de datos.
- Validaciones.
- Entrada y salida.
- Archivos.
- Memoria.
Este proyecto se distribuye bajo la licencia MIT.