Ejemplo de programa assembly en NASM para x86 32 bits que define, incrementa y guarda una variable entera en memoria en Linux.
; Programa assembly x86 32 bits que define y utiliza una variable entera
section .data
mia_variabile dd 10 ; Definición de una variable entera de 32 bits inicializada a 10
section .text
global _start ; Punto de entrada del programa
_start:
; Carga el valor de mia_variabile en el registro EAX
mov eax, [mia_variabile] ; EAX = mia_variabile
; Incrementa el valor de EAX en 1
add eax, 1 ; EAX = EAX + 1
; Guarda el nuevo valor de EAX en mia_variabile
mov [mia_variabile], eax ; mia_variabile = EAX
; Terminación del programa con syscall exit
mov eax, 1 ; número de syscall 1 = sys_exit
mov ebx, 0 ; código de salida 0
int 0x80 ; llamada al kernelProcesador: x86 32 bits
Ensamblador: NASM (Netwide Assembler)
Sistema operativo: Linux (para ejecutar el programa en modo usuario)
Variable: definida en la sección de datos como entero de 32 bits
E/S: sin entrada/salida, el programa modifica la variable en memoria
Configuración de software: sin dependencias externas, compilación con el comando 'nasm -f elf32 programma.asm' y enlace con 'ld -m elf_i386 -o programma programma.o'
Arduino: no aplicable en este ejemplo genérico de assembly para PC