Está en la página 1de 4

Claro, puedo proporcionarte un ejemplo simple en lenguaje ensamblador x86 que

muestra en pantalla tu nombre y tu edad (carácter por carácter). Aquí hay un ejemplo
en ensamblador NASM (en Linux) para mostrar "Tu Nombre" y tu edad (asumiendo que
tienes 2 dígitos, como "25"):

Este código muestra "Tu Nombre" en una línea y luego "25" en la siguiente línea.

Asegúrate de ajustar la cadena de nombre y edad según tus necesidades. Ten en


cuenta que este ejemplo es para sistemas Linux con llamadas al sistema de 32 bits (int

0x80). Si estás utilizando un sistema o arquitectura diferente, es posible que debas


ajustar el código.

section .data

nombre db 'Tu Nombre',0 ; Cadena de caracteres con un byte nulo al final

edad db '25',0 ; Cadena de caracteres de edad con un byte nulo

section .text

global _start

_start:

; Imprimir el nombre

mov eax, 4 ; Código de sistema para sys_write (salida)

mov ebx, 1 ; Descriptor de archivo: STDOUT (1)

mov ecx, nombre ; Puntero a la cadena de nombre

mov edx, 9 ; Longitud de la cadena de nombre

int 0x80 ; Llamada al sistema

; Imprimir una nueva línea

mov eax, 4

mov ebx, 1

mov ecx, newline ; Puntero a una cadena de nueva línea

mov edx, 1 ; Longitud de la cadena (1 byte)


int 0x80

; Imprimir la edad (carácter por carácter)

mov ecx, edad ; Puntero a la cadena de edad

call print_string ; Llama a la función para imprimir cadena

; Salir del programa

mov eax, 1 ; Código de sistema para sys_exit (salida)

mov ebx, 0 ; Código de retorno (0 significa éxito)

int 0x80

print_string:

; Función para imprimir una cadena de caracteres

; Entrada: ecx apunta a la cadena de caracteres

loop_start:

mov al, [ecx] ; Carga el próximo carácter de la cadena

test al, al ; Comprueba si es el carácter nulo (fin de la cadena)

jz loop_end ; Si es nulo, termina

mov eax, 4 ; Código de sistema para sys_write (salida)

mov ebx, 1 ; Descriptor de archivo: STDOUT (1)

mov edx, 1 ; Longitud de la cadena (1 byte)

int 0x80 ; Llamada al sistema

inc ecx ; Avanza al siguiente carácter

jmp loop_start ; Repite el bucle

loop_end:

ret

section .data

newline db 10, 0 ; Carácter de nueva línea y nulo al final


La elección de un sistema, arquitectura o compilador para programar en lenguaje ensamblador depende
en gran medida de tus objetivos y preferencias personales. Aquí hay algunas opciones comunes:

Sistema Operativo:

 Linux: Linux es una plataforma popular para programar en ensamblador debido a su naturaleza de
código abierto y su compatibilidad con una variedad de ensambladores y herramientas de
desarrollo.

 Windows: Si prefieres trabajar en el entorno de Windows, también puedes programar en


ensamblador para Windows. El compilador NASM (Netwide Assembler) es una opción común.

Arquitectura del Procesador:


 x86: La arquitectura x86 es común en la mayoría de las computadoras personales. Puedes
programar en ensamblador para procesadores Intel y AMD.

 ARM: La arquitectura ARM es ampliamente utilizada en dispositivos móviles y sistemas


integrados. Si estás interesado en programar para dispositivos móviles o embebidos, el
ensamblador ARM es una opción relevante.

 Otros: Hay muchas otras arquitecturas de procesadores, como MIPS, PowerPC, SPARC, etc. Tu
elección dependerá de la plataforma objetivo.

Compiladores y Herramientas:
 NASM (Netwide Assembler): NASM es un ensamblador ampliamente utilizado y es compatible con
Linux y Windows. Puedes escribir código en NASM y ensamblarlo en código binario.

 GAS (GNU Assembler): GAS es otro ensamblador ampliamente utilizado que forma parte de la suite
de herramientas GNU. Se utiliza comúnmente en sistemas Linux.}

 MASM (Microsoft Macro Assembler): MASM es un ensamblador específico de Microsoft que se


utiliza en sistemas Windows.

 Keil, IAR, y otros: Si estás programando para microcontroladores específicos, es posible que
necesites herramientas y ensambladores específicos proporcionados por el fabricante del
microcontrolador.
Entornos de Desarrollo Integrados (IDE):
Para escribir y depurar código en ensamblador, puedes utilizar IDEs como Visual Studio Code,
que admite extensiones para ensamblador.

También puedes usar IDEs específicos proporcionados por el fabricante de la arquitectura del
procesador si estás trabajando en sistemas embebidos.

La elección dependerá de tu plataforma objetivo, tus necesidades y tus preferencias


personales. Si estás aprendiendo ensamblador, puede ser útil comenzar en un entorno familiar, como
NASM en Linux o MASM en Windows, y luego explorar otras opciones según sea necesario.

También podría gustarte