0Pricing
Assembly Language & x86 Low-Level Systems Programming · Lección

Su primer programa en ensamblador

Configure su entorno de desarrollo y escriba, ensamble, enlace y ejecute un sencillo programa «Hello, World!» en ensamblador x86.

Su primer programa en ensamblador es una lección gratuita de Assembly Language & x86 Low-Level Systems Programming en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Assembly Language & x86 Low-Level Systems Programming, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Assembly Language & x86 Low-Level Systems Programming incluye 4 lecciones en total.

Your First Assembly Program

Es hora de ponerse manos a la obra: configurarás las herramientas, escribirás un "¡Hola, mundo!" en ensamblador y lo convertirás en un ejecutable ejecutable. Esta es la parte divertida.

Get Ready: Assembler & Linker

Necesitas dos herramientas: un ensamblador (usamos NASM) para crear un archivo objeto, y un enlazador (LD) para convertirlo en un programa ejecutable.

Anatomy of an Assembly Program

Un programa en ensamblador se divide en secciones. .data contiene datos inicializados como cadenas; .text contiene tus instrucciones, comenzando en _start.

Storing "Hello, World!"

Almacena el mensaje en .data. La directiva db define bytes; añadimos un salto de línea (0xA) y calculamos la longitud justo después.

section .data
    msg db 'Hello, World!', 0xA
    len equ $ - msg

System Calls: Printing Text

Para imprimir, solicítalo al SO mediante una llamada al sistema. En Linux, esa es sys_write (número 1): pasas la salida, la dirección y el recuento de bytes.

section .text
    global _start

_start:
    ; sys_write (syscall number 1)
    mov rax, 1         ; syscall number for sys_write
    mov rdi, 1         ; file descriptor 1 (stdout)
    mov rsi, msg       ; address of the string to write
    mov rdx, len       ; number of bytes to write
    syscall            ; execute the system call

Ending Our Program (Syscall)

Cuando termine, el programa debe indicar al SO que se detenga con una segunda llamada al sistema: sys_exit (número 60), pasando un estado de salida; 0 significa éxito.

    ; sys_exit (syscall number 60)
    mov rax, 60        ; syscall number for sys_exit
    mov rdi, 0         ; exit status 0 (success)
    syscall            ; execute the system call

Your First Full Program!

Aquí está el "¡Hola, mundo!" completo; guárdalo como hello.asm. La sección .data contiene el mensaje, y .text lo imprime y sale.

section .data
    msg db 'Hello, World!', 0xA
    len equ $ - msg

section .text
    global _start

_start:
    ; sys_write (syscall number 1)
    mov rax, 1         ; syscall number for sys_write
    mov rdi, 1         ; file descriptor 1 (stdout)
    mov rsi, msg       ; address of the string to write
    mov rdx, len       ; number of bytes to write
    syscall            ; execute the system call

    ; sys_exit (syscall number 60)
    mov rax, 60        ; syscall number for sys_exit
    mov rdi, 0         ; exit status 0 (success)
    syscall            ; execute the system call

De Ensamblador a Archivo Objeto

Primero, ensambla: nasm -f elf64 convierte hello.asm en el archivo objeto hello.o — código de máquina, pero aún no un ejecutable.

nasm -f elf64 hello.asm -o hello.o

Creación del ejecutable

El archivo objeto aún no se puede ejecutar. El enlazador (ld) conecta el punto de entrada _start y produce el ejecutable final.

ld hello.o -o hello

¡Ejecuta y ve el resultado!

Ahora ejecútalo con ./hello. "Hello, World!" se imprime en tu consola; ¡felicidades, acabas de ejecutar tu primer programa en ensamblador x86!

./hello

Quick Check: Process Steps

Has visto el proceso completo para crear un ejecutable a partir de código ensamblador. ¿Cuál es el orden correcto de los pasos?

Resumen: Tu primer programa en ensamblador

Ejecutaste el flujo de trabajo completo: define datos, llama a sys_write y sys_exit, luego ensambla, enlaza y ejecuta. Siguiente: registros y tipos de datos.

Preguntas frecuentes

¿La lección «Su primer programa en ensamblador» es gratis?

Sí — el texto completo de «Su primer programa en ensamblador» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Assembly Language & x86 Low-Level Systems Programming, actualiza a CoddyKit PRO. El curso de Assembly Language & x86 Low-Level Systems Programming incluye 4 lecciones en total.

¿Qué aprenderé en «Su primer programa en ensamblador»?

Configure su entorno de desarrollo y escriba, ensamble, enlace y ejecute un sencillo programa «Hello, World!» en ensamblador x86. Practicas Assembly Language & x86 Low-Level Systems Programming con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Assembly Language & x86 Low-Level Systems Programming?

No se requiere experiencia previa. Assembly Language & x86 Low-Level Systems Programming en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.

¿Cuánto tiempo toma la lección «Su primer programa en ensamblador»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Assembly Language & x86 Low-Level Systems Programming?

Sí. Cada lección de Assembly Language & x86 Low-Level Systems Programming incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. ¿Qué es el lenguaje ensamblador?
  2. Fundamentos de la arquitectura x86
  3. Su primer programa en ensamblador
  4. La cadena de herramientas de ensamblado, enlazado y ejecución
← Volver a Assembly Language & x86 Low-Level Systems Programming