Escolar Documentos
Profissional Documentos
Cultura Documentos
El ordenador slo entiende un lenguaje conocido como cdigo binario o cdigo mquina, consistente en ceros y unos. Es decir, slo utiliza 0 y 1 para codificar cualquier accin. Los lenguajes ms prximos a la arquitectura hardware se denominan lenguajes de bajo nivel y los que se encuentran ms cercanos a los programadores y usuarios se denominan lenguajes de alto nivel.
El lenguaje maquina: este lenguaje ordena a la mquina las operaciones fundamentales para su funcionamiento. Consiste en la combinacin de 0's y 1's para formar las ordenes entendibles por el hardware de la maquina. Este lenguaje es mucho ms rpido que los lenguajes de alto nivel. La desventaja es que son bastantes difciles de manejar y usar, adems de tener cdigos fuente enormes donde encontrar un fallo es casi imposible.
El lenguaje ensamblador es un derivado del lenguaje maquina y esta formado por abreviaturas de letras y nmeros llamadas menmotcnicos. Con la aparicin de este lenguaje se crearon los programas traductores para poder pasar los programas escritos en lenguaje ensamblador a lenguaje mquina. Como ventaja con respecto al cdigo mquina es que los cdigos fuentes eran ms cortos y los programas creados ocupaban menos memoria. Las desventajas de este lenguaje siguen siendo prcticamente las mismas que las del lenguaje ensamblador, aadiendo la dificultad de tener que aprender un nuevo lenguaje difcil de probar y mantener.
Se tratan de lenguajes independientes de la arquitectura del ordenador. Por lo que, en principio, un programa escrito en un lenguaje de alto nivel, lo puedes migrar de una mquina a otra sin ningn tipo de problema. Estos lenguajes permiten al programador olvidarse por completo del funcionamiento interno de la maquina/s para la que estn diseando el programa. Tan solo necesitan un traductor que entiendan el cdigo fuente como las caractersticas de la maquina. Suelen usar tipos de datos para la programacin y hay lenguajes de propsito general (cualquier tipo de aplicacin) y de propsito especifico (como FORTRAN para trabajos cientficos).
Ensamblador
Se llaman ensambladores los programas encargados de traducir los programas escritos en ensamblador a cdigo binario. Fjese en que tanto el programa traductor como el lenguaje se llaman del mismo modo: ensamblador. Como el lenguaje ensamblador es muy prximo al binario, estos traductores son programas relativamente sencillos.
Compiladores
El compilador es un programa que traduce el cdigo de alto nivel a cdigo binario. Es, por tanto, parecido al ensamblador, pero mucho ms complejo, ya que las diferencias entre los lenguajes de alto nivel y el cdigo binario son muy grandes. El programa escrito en lenguaje de alto nivel se denomina programa fuente o cdigo fuente. El programa traducido a cdigo binario se llama programa objeto o cdigo objeto. Por lo tanto, el compilador se encarga de convertir el programa fuente en un programa objeto.
Una vez que se ha obtenido el programa objeto ya no es necesario volver a realizar la traduccin (o compilacin), a menos que se haga alguna modificacin en el programa fuente, en cuyo caso habra que volver a compilarlo. El programa objeto, una vez generado, puede ejecutarse en la mquina en la que fue compilado, o en otra de similares caractersticas (procesador, sistema operativo, etc.).
Una vez que se ha obtenido el programa objeto ya no es necesario volver a realizar la traduccin (o compilacin), a menos que se haga alguna modificacin en el programa fuente, en cuyo caso habra que volver a compilarlo. El programa objeto, una vez generado, puede ejecutarse en la mquina en la que fue compilado, o en otra de similares caractersticas (procesador, sistema operativo, etc.).
Segmentos de un programa
El segmento de pila define el espacio de almacenamiento para la pila. El segmento de datos define los datos que el programa usar. El segmento de cdigo contiene las instrucciones del lenguaje ensamblador.
Segmentos de un programa
Un procedimiento es un conjunto de instrucciones diseadas para llevar a cabo una funcin especfica. Un segmento de cdigo puede constar de slo un procedimiento, pero usualmente es organizado en varios procedimientos pequeos para hacer que el programa sea ms estructurado.
Cada procedimiento debe tener un nombre definido por la directiva PROC, seguido por instrucciones en lenguaje ensamblador y debe ser finalizado por la directiva ENDP (que debe tener la misma etiqueta usada para nombrar al procedimiento).
Segmentos de un programa
La directiva PROC puede tener las opciones FAR o NEAR. El sistema operativo que controla el computador debe ser dirigido al inicio del programa para ejecutarlo. DOS requiere que el punto de entrada al programa sea un procedimiento FAR. NEAR es la opcin por defecto.
Segmentos de un programa
La directiva ASSUME asocia los registros de segmentos con las etiquetas de los segmentos respectivos: Se asumir que los registros de segmentos son iguales a las etiquetas de los segmentos usadas en el programa. Si un segmento extra es usado, tambin deber incluirse en la sentencia ASSUME. La directiva ASSUME es necesaria porque un programa en lenguaje ensamblador podra tener varios segmentos de cdigo, uno o ms segmentos de datos y ms de un segmento de pila, pero slo uno de cada uno podr ser direccionado por el CPU a un tiempo (el CPU slo tiene un CS, un DS, un SS y un ES).
Segmentos de un programa
La directiva ASSUME tambin ayuda al ensamblador a calcular los desplazamientos (offsets) direccionados desde el inicio del segmento. Por ejemplo en MOV AL,[BX] el BX es el offset del segmento de datos. Es necesario pues que el ensamblador identifique cual ser el segmento de datos a usar cuando existe ms de uno.
Segmentos de un programa
Recordar que ASSUME es una directiva para el ensamblador y que para ejecutar un programa se deben proporcionar los valores de CS, DS y SS que le corresponden a dicho programa. El sistema operativo debe pasar el control al programa para que ste pueda ejecutarse, por lo que asigna los valores de CS y SS respectivos. El valor del registro DS (y ES) debe ser inicializado por el programa.
Modelos de memoria
SMALL MODEL Este es uno de los ms ampliamente usados modelos de memoria para los programas en lenguaje ensamblador. Este modelo usa un mximo de 64K bytes de memoria para cdigo y otros 64K bytes para datos.
MEDIUM MODEL En este modelo los datos tambin deben mantenerse dentro de 64K bytes pero el cdigo podra superar los 64K bytes de memoria. COMPACT MODEL Es el opuesto al MEDIUM MODEL. Los datos pueden exceder los 64K bytes de memoria, el cdigo no.
LARGE MODEL Combina los dos modelos anteriores (ambos segmentos pueden superar los 64K bytes de memoria). Aunque los datos pueden superar los 64K bytes, ningn conjunto de datos (tal como un arreglo) debe superar los 64K bytes.
HUGE MODEL Ambos segmentos pueden superar los 64K bytes de memoria. Un conjunto de datos (tal como un arreglo) puede superar los 64K bytes.
TINY MODEL Es usado con archivos del tipo COM. El total de la memoria usada para cdigo y datos deben mantenerse dentro de 64K bytes.
MOVS
SCAS STOS