- Introducción
- Objetivos
- El lenguaje de máquina y el lenguaje ensamblador
- Intérpretes, compiladores y ensambladores
- Historia de los procesadores
- Diagrama de componentes internos
- El sistema operativo MS-DOS
- Creación y depuración de programas en lenguaje ensamblador edición
- Programación en ensamblador
- Programación de E/S
- Conclusión
- Bibliografía
Introducción
El presente trabajo, está enfocado al lenguaje ensamblador de los procesadores 8088,
8086, 80186, 80188 y 80286, asi como todo lo necesario para programar en lenguaje ensamblador y todas las herramientas que nos proporciona este para realizar programas.
Este documento trata de abarcar, de la forma más general, todo aquello que involucra el conocimiento y uso del lenguaje ensamblador.
Ha sido organizado en CUATRO partes importantes que describen detalladamente aspectos relevantes a considerar para el uso de lenguaje ensamblador.
La primera describe los conocimientos básicos que deben poseerse para una mejor comprensión e interpretación de lo que es el lenguaje ensamblador y cómo debe ser usado.
La segunda parte presenta una breve descripción de lo que es el lenguaje ensamblador, ventajas y desventajas de este, instrucciones generales, todo lo que nos proporciona el lenguaje ensamblador.
En el tercer apartado se mencionan los pasos para la creación y depuración ade un programa en lenguaje ensamblador.
En la última parte se explican los tipos de programación en lenguaje ensamblador asi como todas las instrucciones interrupciones, parámetros, procedimientos en cada uno de ellos. .
牐roporcionar información a la comunidad estudiantil que les sirva de apoyo didáctico en la elaboración de investigaciones, realización de practicas y exposición de proyectos en las distintas areas de conocimiento.
牐resentar un proyecto de calidad en la materia de SEMINARIO DE DESARROLLO DE PROYECTOS DE INVESTIGACION EN EL TECNOLOGICO DE ESTUDIOS SUPERIORES DE JOCOTITLAN.
I.-CONCEPTOS BASICOS.
El lenguaje de máquina y el lenguaje ensamblador
Todo procesador, grande o pequeño, desde el de una calculadora hasta el de un supercomputador, ya sea de propósito general o específico, posee un lenguaje único que es capaz de reconocer y ejecutar. Por razones que resultan obvias, este lenguaje ha sido denominado Lenguaje de Máquina y más que ser propio de un computador pertenece a su microprocesador. El lenguaje de máquina está compuesto por una serie de instrucciones, que son las únicas que pueden ser reconocidas y ejecutadas por el microprocesador. Este lenguaje es un conjunto de números que representan las operaciones que realiza el microprocesador a través de su circuitería interna. Estas instrucciones, por decirlo así, están grabadas o "alambradas" en el hardware y no pueden ser cambiadas. El nivel más bajo al que podemos aspirar a llegar en el control de un microprocesador es precisamente el del lenguaje de máquina.
Ahora bien, siendo el lenguaje de máquina un conjunto de números, ¿cómo es capaz el microprocesador de saber cuándo un número representa una instrucción y cuándo un dato? El secreto de esto reside en la dirección de inicio de un programa y en el estado del microprocesador. La dirección de inicio nos indica en qué localidad de memoria comienza un programa, y en consecuencia que datos deberemos considerar como instrucciones. El estado del microprocesador nos permite saber cuándo éste espera una instrucción y cuándo éste espera un dato.
Obviamente, el lenguaje de máquina de un microprocesador no puede ser ejecutado por otro microprocesador de arquitectura distinta, a menos que haya cierto tipo de compatibilidad prevista. Por ejemplo, un 80486 es capaz de ejecutar lenguaje de máquina propio y soporta el código generado para microprocesadores anteriores de la misma serie (desde un 8086 hasta un 80386). Por otra parte, un PowerPC es capaz de ejecutar instrucciones de los microprocesadores Motorola 68xxx y de los Intel 80xx/80×86. En ambos casos, el diseño de los microprocesadores se hizo tratando de mantener cierto nivel de compatibilidad con los desarrollados anteriormente. En el segundo caso, este nivel de compatibilidad se extendió a los de otra marca. Sin embargo, un 8088 no puede ejecutar código de un 80186 o superiores, ya que los procesadores más avanzados poseen juegos de instrucciones y registros nuevos no contenidos por un 8088.
Un caso similar es la serie 68xxx, pero de ninguna manera podemos esperar que un Intel ejecute código de un Motorola y viceversa. Y esto no tiene nada que ver con la compañía, ya que Intel desarrolla otros tipos de microprocesadores como el 80860 y el iWARP, los cuales no pueden compartir código ni entre ellos ni entre los 80xx/80xxx.
Ahora bien, mientras que con el lenguaje de máquina, nosotros obtenemos un control total del microprocesador, la programación en este lenguaje resulta muy difícil y fácil para cometer errores. No tanto por el hecho de que las instrucciones son sólo números, sino porque se debe calcular y trabajar con las direcciones de memoria de los datos, los saltos y las direcciones de llamadas a subrutinas, además de que para poder hacer ejecutable un programa, se deben enlazar las rutinas de run-time y servicios del sistema operativo.
Este proceso es al que se le denomina ensamblado de código. Para facilitar la elaboración de programas a este nivel, se desarrollaron los Ensambladores y el Lenguaje Ensamblador.
Página siguiente |