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