LinuxParty
He tenido un pequeño momento friki de recuerdo de mis antiguas andanzas con la programación en ASM (ensamblador). Ese recuerdo me ha hecho pensar en intentar el típico “hola mundo” en ensamblador.
Siempre había programado en x86 bajo MS-DOS y recuerdo aquella interrupción para hacer casi de todo, la int 21h. Ahora, un aliciente mas ha sido que no tengo MS-DOS, sino Ubuntu y en 64bits (nada de 32bits), por lo que hay algunos pequeños cambios: por ejemplo la int 21h es la int 80h (la que tiene los servicios de kernel).
Para empezar el compilador; he utilizado el NASM por poner uno, aunque hay varios y la verdad es que no he tenido tiempo ni de comparar ni analizar nada,…
Creamos un fichero holamundo.asm con este código fuente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
section .text global _start ;necesario para el linkado (ld) _start: ;inicio del codigo mov edx,txtlong ;longitud del maxima del mensaje mov ecx,texto ;mensaje mov ebx, 1 ;file descriptor (stdout) mov eax, 4 ;numero de servicio (sys_write) int 0x80 ;interrupcion 80h (llama al kernel) mov eax, 1 ;numero de servicio (sys_exit) int 0x80 ;llamada al kernel otra vez section .data texto db 'Hola mundo!!!' ,0xa ;mensaje, acabado en null txtlong equ $ - texto ;length of our dear string |
Para compilar el código tan simple como:
nasm -f elf64 holamundo.asm -o holamundo.o |
Una vez compilado y generado el fichero objeto, hay que linkarlo. Para ello hay que utilizar el comando ld:
ld -o holamundo holamundo.o |
Listo!!! compilado y linkado, ahora ya solo queda ejecutarlo:
Que maravilla!!!

-
Ubuntu
- Las discusiones de desarrollo de Ubuntu se trasladarán de IRC a Matrix
- Crear de un servidor NFS, como almacenamiento independiente con GlusterFS En Ubuntu
- 20 años de Ubuntu: Canonical lo celebra con el lanzamiento de 24.10, que es excepcional como siempre
- Ahora puedes actualizar Ubuntu 22.04 LTS a Ubuntu 24.04 LTS. Aquí te explicamos cómo
- El App Center de Ubuntu ahora finalmente admite la instalación de paquetes DEB locales
- Ubuntu 24.04 ahora se ejecuta en Nintendo Switch (no oficialmente)
- Las 10 mejores distribuciones de Linux basadas en Ubuntu
- Cómo recuperar, reparar y reinstalar el cargador Boot Loader de arranque GRUB en Ubuntu Linux
- Instalar Nvidia Driver en Ubuntu Linux (último controlador patentado)
- Disco de Recuperación NTFS de Windows desde Linux
- Tener tu propia nube con ownCloud3 con Nginx (LEMP) en Debian/Ubuntu
- Ejecutar Simple Groupware en Nginx (LEMP) en Debian Squeeze/Ubuntu 11.10
- Ejecutar Shopware Community Edition con Nginx en Debian Squeeze/Ubuntu 12.04
- Cosas que hacer después de instalar Ubuntu Linux
- 25 Comandos Básicos Útiles de APT-GET y APT-CACHE para la Gestión de Paquetes