LinuxParty

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado
 

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!!!

Pin It

Escribir un comentario


Código de seguridad
Refescar



Redes:



 

Suscribete / Newsletter

Suscribete a nuestras Newsletter y periódicamente recibirás un resumen de las noticias publicadas.

Donar a LinuxParty

Probablemente te niegues, pero.. ¿Podrías ayudarnos con una donación?


Tutorial de Linux

Filtro por Categorías

We use cookies

Usamos cookies en nuestro sitio web. Algunas de ellas son esenciales para el funcionamiento del sitio, mientras que otras nos ayudan a mejorar el sitio web y también la experiencia del usuario (cookies de rastreo). Puedes decidir por ti mismo si quieres permitir el uso de las cookies. Ten en cuenta que si las rechazas, puede que no puedas usar todas las funcionalidades del sitio web.