PROGRAMACION ENSAMBLADOR

Aqui voy a mostrara como se puede programar en ensamblador en Puppy.

Yo quiero meterme mas con ensamblador pero en puppy una forma de hacerlo es con el compilador NASM que nos viene por defecto cuando instalamos el archivo  devx_XXXX.sfs correspondiente a nuestra distribucion, en mi caso que estoy utilizando Puppy 5.6 pues este archivo es :

devx_slacko_5.6.0.sfs

Comentar que este paquete es fundamental para compilar paquetes, ya que viene con el compilador de C gcc, con g++, python, perl, y un monton de cosas mas para programar.

En el caso que nos ocupa ahora viene con  NASM compilador libre para linux de ensamblador.

Los archivos SFS son archivos de programas que se cargan al vuelo, esto es que se instalan y se desinstalan muy facilmente simplemente llendo a menu > Setup > SFS load on fly.

Este archivo sfs debe estar en el directorior principal de home    /mnt/home

Una vez cargado el sfs no tendremos mas que teclear en el terminal:

nasm      (Enter)

Y comprobar que esta instalado.

Vamos a crear un pequeño ejemplo en ensambador y compilarlo, para ello vamos a utilizar el tipico programa que hay en todas partes de Hello world

section .data
    hello:     db ‘Hello world!’,10    ; ‘Hello world!’ define la cadena hello
    helloLen:  equ $-hello             ; Longitud de la cadena ‘Hello world!’
          

section .text
    global _start

_start:
    mov eax,4            ;  El  sistema de llamada para escribir(sys_write)
    mov ebx,1            ; File descriptor 1 – standard output
    mov ecx,hello        ; Pone el  offset de hello en ecx
    mov edx,helloLen     ; helloLen  es una constante, no neceesitamos decirle
                                     ;  mov edx,[helloLen] par que consiga el valor actual
    int 80h              ;  LLamada al kernel

    mov eax,1            ; El sistema de llamada para la salida (sys_exit)
    mov ebx,0            ; Salir y retornar el codigo de 0 (no error)
    int 80h

Copiamos ester texto a un archivo de texto hello.asm y en el directorio donde se encuentra el archivo abrimos el terminal procedemos a los siguiente:

 

1).  Para ensamblar el programa tecle:
nasm -f elf hello.asm

Si hay errores  Nasm se lo marcara indicandole el numero de linea en que esta.

2.   Luego enlazamos

        ld -s -o hello hello.o

Esto enlazara el archivo objeto poducido por NASM dentro de un archivo ejecutable.

3. Luego ejecutamos el programa de la siguiente forma
      ./hello

Realmente entiendo que  ensamblador puede ser muy tedioso, pero a la vez muy apasionante por que si se llega a comprender bien, realmente lo que ocurre es que se puede llegar a tener un control total del PC y cosas que algunas veces son muy complicadas se convierten en simples.

 

 

 

 

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s