Ejercicios de programación en Ensamblador x86-64 usando sintaxis NASM (Netwide Assembler)
Este repositorio contiene ejercicios de programación en Ensamblador x86-64 usando sintaxis NASM. Los ejemplos prácticos incluyen:
- Interacción directa con syscalls del kernel Linux.
- Manejo de registros de 64 bits (RAX,RBX,RCX,RDX, etc.).
- Operaciones a nivel de hardware.
- Manipulación de memoria y cadenas.
| # | Ejercicio | Nivel | Descripción | 
|---|---|---|---|
| 1 | Operaciones Aritméticas | 🟢 | Suma, resta, multiplicación y división de dos números. | 
| 2 | Fibonacci | 🟢 | Genera la serie de Fibonacci desde f(0) hasta f(93). | 
| 3 | Números Primos | 🟡 | Detecta números primos entre 10 valores ingresados. | 
| 4 | MCD y MCM | 🟡 | Calcula el Máximo Común Divisor y Mínimo Común Múltiplo. | 
| 5 | Comparar Cadenas | 🟡 | Compara dos cadenas para verificar igualdad. | 
| 6 | Eliminar Números | 🟡 | Elimina todos los dígitos numéricos de una cadena. | 
| 7 | Buscar Subcadena | 🔴 | Detecta una subcadena dentro de otra cadena. | 
| 8 | Anagramas | 🔴 | Verifica si dos palabras son anagramas (mismos caracteres). | 
- Sistema operativo: WSL2 en Windows o distribuciones Linux (Debian, Ubuntu, Arch, etc.).
- Arquitectura: x86-64 (64 bits).
- NASM: versión 2.16 o superior.
- GNU Linker (ld): versión 2.44 o superior.
- Instalar WSL con Debian en PowerShell como Administrador (solo primera vez):
wsl --install -d Debian 
- Reiniciar la máquina. Al acceder a Debian, configurar usuario/contraseña al solicitarse.
- Instalar NASM y herramientas de compilación:
sudo apt update sudo apt install nasm build-essential -y 
- Verificar instalación:
nasm -v # versión de nasm - ej. NASM version 2.16.03ld -v # versión de ld - ej. GNU ld (GNU Binutils for Debian) 2.44uname -m # arquitectura - ej. x86_64
- Navegar a la carpeta de ejercicios. Ajustar la ruta según la ubicación del repositorio:
cd /mnt/.../assembly-exercises/exercises
- Ensamblar el código. Convierte el archivo .asmen un archivo objeto.o:nasm -f elf64 01_arithmetic_operations.asm -o exercise.o 
- Enlazar y crear el ejecutable:
ld exercise.o -o exercise 
- Ejecutar el programa:
./exercise 
- Todo en un solo comando:
nasm -f elf64 01_arithmetic_operations.asm -o exercise.o && ld exercise.o -o exercise && ./exercise 
Ejecución del código sin necesidad de instalación:
- Abrir OneCompiler - Assembly.
- Copiar y pegar el código del ejercicio.
- Si el ejercicio requiere entrada del usuario:
- Ir al panel STDIN.
- Ingresar los valores separados por un espacio.
 
- Hacer clic en Run.
Para profundizar más:
- NASM Documentation - Manual completo de ensamblador.
- x86-64 Reference - Referencia de instrucciones x86-64.
- Linux Syscall Table - Tabla de syscalls para x86-64.