NASM

Macros en NASM


En Assembly podemos definir macros que faciliten la escritura de nuestros programas. Las macros son como métodos ya que reciben parámetros y realizan una serie de instrucciones. Se definen de la siguiente manera: %macro Nombre Cantidad-Parametros Instrucciones %endmacro

Posted in | 1 Response

Lista de los Servicios int 80h


Esta es la lista de la mayoría de los servicios int 80h o los valores para las llamadas al sistema. La lista se encuentra en el archivo unistd_32.inc y esta basada en el archivo unistd_32.h que corresponde a la arquitectura de los procesadores x86. Para llamar al archivo unistd_32.inc escribimos %include . . .

Posted in | Leave a response

Directorios en Assembly


Para trabajar directamente con directorios (crear, eliminar, renombrar, etc.) vamos a utilizar los valores de las constantes de las llamadas al sistema (system call numbers). Las constantes básicas para trabajar con los directorios son: %define __NR_mkdir 39 %define __NR_rmdir 40

Posted in | Leave a response

Assembly y C


El compilador NASM nos permite llamar funciones de C desde el código ensamblador, lo cual hace más fácil el desarrollo de nuestro programa. En el artículo Programación en Ensamblador muestro un ejemplo sencillo que muestra el clásico Hello Worldutilizando la función printf. Ahora veamos un ejemplo para utilizar . . .

Posted in | Leave a response

Assembly, entrada y salida


Recuerda que Linux es un sistema operativo de 32 bits, por lo que es un sistema protegido y no nos permite acceder directamente a la BIOS y a otros elementos del hardware. Pero contamos con los servicios del núcleo de Linux, accesibles a través de . . .

Posted in | Leave a response

Hello Assembly!


El tiempo que emplearemos para programar en Ensamblador será mucho mayor que el de costumbre, sin embargo al final obtendremos un programa de menor tamaño y mucho más veloz que cualquier otro. Usando lenguajes como C o Java, podemos escribir el mismo código fuente y . . .

Posted in | Leave a response