jueves, 20 de junio de 2013

Introducción, Hola mundo en Ensamblador.

Definición Propia del Lenguaje Ensamblador

Es un lenguaje de bajo nivel que permite manipular el hardware con gran potencia, haciendo uso de los registros.

Introducción.

Autor : Peter Abel (Lenguaje Ensamblador y Programación para PC IBM y Compatibles, 3a Ed.)

Escribir un programa en lenguaje ensamblador requiere de conocimientos acerca del hardware(arquitectura)
de la computadora, su conjunto de instrucciones y sus reglas de uso.

Los elementos principales de hardware interno de la computadora son un microprocesador, la memoria y los registros; los elementos de hardware externo son los dispositivos de entrada/salida, como el teclado, el monitor y el disco.
El software consta de diversos programas y archivos de datos(incluyendo el sistema operativo)
almacenados en el disco.

Para ejecutar (o correr) un programa, el sistema lo copia del disco a la memoria interna.(La memoria interna es lo que la  gente entiende cuando pide que su computadora tenga, por ejemplo, 8 megabytes de memoria).
EL microprocesador ejecuta las instrucciones del programa, y los registros manejan la aritmética,
movimiento de datos y el direccionamiento.

Un programa en lenguaje ensamblador consiste en uno o mas segmentos para definir datos y almacenar
instrucciones de maquina y un segmento llamado stack (o pila) que contiene direcciones almacenadas.



Ejemplo 1.
++++++++++++++++++++++++++++++++++++++++++++++++++++
Primer programa en Ensamblador (masm)

;modelo corto
el punto y coma (;) define comentarios
--------------------------------------------------------------------------------
.model small ;se define el tipo de modelo, corto
.data ;aquí se definen las variables que se van a ocupar, es el segmento de datos

mensaje db 'hola, este es un ejemplo en ensamblador$'

.code
empieza: ;se define un comienzo del cuerpo del programa

mov ax,@data ;movemos al registro dx, los datos a utilizar
mov ds,ax

;en ah siempre se cargan las funciones, en este caso la 09h, permite desplegar un mensaje en pantalla
mov ah,09h 
mov dx,offset mensaje ;movemos al registro dx el contenido de mensaje
; se llama a la interrupcion 21h
int 21h

; con esta instruccion terminamos el programa 
mov ax, 4c00h
int 21h 
.stack ;segmento de pila

end empieza ;termina el segmento definido como empieza
----------------------------------------------------------------------



=============================================================
Para empezar a escribir código ensamblador se necesita una herramienta, una sera el MASM611,
la cual dejo para descargar en el siguiente link.

http://www.mediafire.com/?8kn148cexvoexpq

Requerimientos del sistema operativo:

  • 32 bits
Nota: si tu computadora es de 64 bits puedes instalar una maquina virtual y ahí instalar un sistema operativo de 32 bits. 


Descripción de contenido y uso del MASM611:

Esta carpeta una ves descomprimida podrán ver que contiene varios archivos, como ejecutables exe.
Bien, esta carpeta contiene los programas necesarios para crear nuestro programa ejecutables(.exe), obvio también pasa por una compilación del código.

En la subcarpeta Binr, se encuentran los programas que nos ayudan a compilar y crear nuestro ejecutable.
MASM611-->BINR

///////en la raiz de la carpeta esta una subcarpeta llamada Notepad++, la cual contiene un editor que puede servir de ayuda para escribir el código. Sino puedes usar el block de notas de windows.

Uso:
El programa a utilizar sera el ML.exe

Una ves escrito nuestro código, lo guardamos con extension .asm (ejemplo miprograma.asm). si lo guardamos en la misma carpeta donde esta el ML.exe es decir en MASM611/BINR/. procedemos a
hacer lo siguiente para la compilación y creación del ejecutable:

Abrimos la terminal de Windows (CMD), nos dirigimos a la ubicación del programa ML, osea a MASM611/BINR/ , con el comando cd ruta puedes moverte entre los directorios desde la terminal.

Después, estando ahi, escribimos el nombre del programa ML y luego el nombre de nuestro programa. ejemplo     cd:\audelo\MASM611\BINR\>ml miprograma.asm
presionamos enter, después de esto nos generara en la misma dirección el archivo ejecutable y objeto de nuestro programa, bueno eso en el mejor de los casos, es decir si no existe errores de sintaxis o léxico en nuestro programa, de ocurrir esto volvemos a editar nuestro código y repetimos esto ultimo.

si todo ha salido bien ya tenemos nuestro programa ejecutable y podremos correrlo o ejcutarlo haciendo doble clic sobre el mismo, o bien, desde la terminal llamarlo.

======================================================================