Ensamblador y C

Assembly, C/C++ | June 16th

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 World utilizando la función printf.

Ahora veamos un ejemplo para utilizar las funciones printf, scanf y exit en ensamblador.
Continuar

Ensamblador, entrada y salida

Assembly | November 16th

Usemos nuevamente NASM y GCC

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 la interrupción 80h.

Antes de comenzar debemos conocer los servicios o los números de las constantes de las llamadas al sistema. Podemos encontrar todos los servicios en el archivo unistd.h, unistd_32.h, unistd_64.h (Dependiendo de la arquitectura del procesador). Continuar

Programación en Ensamblador

Assembly | August 19th

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 podrá funcionar en una PC, PowerPC y otras arquitecturas. En cambio con el lenguaje ensamblador, tendremos que escribir el mismo programa con diferente código fuente. Esto es debido a que el lenguaje ensamblador se comunica directamente con el hardware y estas arquitecturas son totalmente distintas y es por ello que es necesario conocer el conjunto de instrucciones y características del procesador con el que vamos a trabajar, incluyendo las características de los ensambladores, enlazadores y depuradores. Continuar