Assembly Playground
Escribe, ejecuta y comparte fragmentos de código, sin instalaciones.
Ejecuta Assembly online en tu navegador
Este es un compilador Assembly online y gratuito para código x86-64 escrito en sintaxis NASM. Escribe tu programa, pulsa Ejecutar y Coddy lo ensambla con nasm -f elf64, lo enlaza con ld y ejecuta el ejecutable de Linux resultante en el servidor; luego te muestra stdout, stderr y el código de salida. No hay nada que instalar: ni NASM, ni enlazador, ni máquina virtual, ni compilador cruzado.
El programa inicial es un punto de entrada _start completo que lee una línea de la entrada estándar y devuelve un saludo usando las syscalls crudas read, write y exit, sin libc. Así funciona el ensamblador de verdad: colocas los argumentos en rax/rdi/rsi/rdx, invocas syscall y el kernel hace el resto. Usa el panel de stdin debajo del editor para pasar entrada a tu programa en cada Ejecución, igual que redirigir datos a un binario real.
Qué hace útil a este playground de Assembly
- Cadena de herramientas NASM x86-64 real. Tu código fuente se ensambla con
nasm -f elf64y se enlaza conlden Linux, los mismos comandos que escribirías localmente, así que lo que se ejecuta aquí coincide con lo que se ejecuta en una máquina real. - Syscalls directas de Linux. El programa inicial usa
read,writeyexitmediante la instrucciónsyscallsin libc de por medio, así que ves exactamente cómo los registros transportan los argumentos y los valores de retorno. - Compatibilidad con la entrada estándar. Envía bytes a tu programa a través del panel de stdin y léelos con la syscall 0: útil para los ejercicios clásicos de 'leer un nombre e imprimir un saludo' y más allá.
- Sin configuración, respuesta instantánea. Sin instalar NASM, sin flags del enlazador que recordar, sin errores de permisos: abre la página y el editor está listo. Los errores del ensamblador y del enlazador vuelven directamente en la salida.
Qué puedes probar en el playground de Assembly
- Imprime una cadena fija con una sola syscall
writey luego unexit(0)limpio: el programa x86-64 completo más pequeño y la forma más rápida de ver cómo encajan_startysyscall. - Lee de stdin en un búfer
.bss, recorta el salto de línea final y devuélvelo: el patrón detrás de casi todos los ejercicios de ensamblador basados en entrada. - Suma dos números en registros y convierte el resultado a dígitos ASCII a mano para poder hacer
write. Así aprendes que en ensamblador no hayprint, solo bytes y syscalls.
Preguntas frecuentes del compilador Assembly online
¿Qué ensamblador y sintaxis usa este playground?
nasm -f elf64 y se enlaza con ld. Si vienes de la sintaxis AT&T/GAS (el estilo %rax, movq), reescríbelo en el estilo Intel de NASM: mov rax, 1, section .text, global _start.¿Necesito instalar NASM o un enlazador para usar esto?
¿Cómo leo la entrada en ensamblador aquí?
read (número 0): pon 0 en rax (sys_read), 0 en rdi (stdin), la dirección de un búfer en rsi y el número máximo de bytes en rdx, y luego ejecuta syscall. Lo que escribas en el panel de stdin debajo del editor se entrega a tu programa al Ejecutar. El programa inicial muestra el patrón completo, incluido el recorte del salto de línea final.¿Por qué mi programa necesita _start en lugar de main?
ld y sin runtime de C. main es una convención de libc: el código de arranque de C lo llama después de preparar las cosas. Con un enlace ld puro no hay libc, así que el kernel salta directamente a la etiqueta _start, y por eso cada programa aquí define global _start. Eres responsable de salir limpiamente con la syscall exit (número 60) al final.¿Puedo aprender ensamblador con este compilador incluso siendo principiante?
Herramientas útiles para Assembly
Herramientas gratuitas basadas en el navegador que complementan el Playground de Assembly - todo parte de Coddy.