Universidad Central “Marta Abreu” de Las Villas FACULTAD DE INGENIERÍA ELECTRICA DEPARTAMENTO DE ELECTRONICA Y TELECOMUNICACIONES TRABAJO DE DIPLOMA Título “Recursos para el aprendizaje de lenguaje ensamblador.” Autores Maikel Pérez Suarez Daniel Santos Laureiro Tutor M. Sc. Sergio Rodríguez Arias. Santa Clara 2004 “Año del 45 aniversario del triunfo de la Revolución” Hago constar que el presente trabajo fue realizado en la Universidad Central Marta Abreu de las Villas como parte de la culminación de los estudios de la especialidad de Telecomunicaciones y Electrónica autorizando a que el mismo sea utilizado por la institución, para los fines que estime conveniente, tanto de forma parcial como total y que además no podrá ser presentado en eventos, ni publicados sin autorización de la Universidad. ______________ Firma del Autor Los abajo firmantes, certificamos que el presente trabajo ha sido realizado según acuerdo de la dirección de nuestro centro y el mismo cumple con los requisitos que debe tener un trabajo de esta envergadura referido a la temática señalada. ______________ ______________ Firma del tutor Firma del jefe de Dpto. Donde se defiende el trabajo. ______________ Firma del Responsable de PENSAMIENTO “La Brecha entre el ser humano y la computadora es permanente, nunca se salvará. Las máquinas seguirán haciendo la vida más fácil, más saludable, más gratificante y más interesante. Pero los seres humanos seguirán preocupándose, en última instancia por las mismas cosas de siempre: por ellos mismos, por los demás y, en el caso de muchos, por Dios. En lo que respecta a las máquinas nunca han conseguido nada. Y nunca lo conseguirán.” David Gelernter, profesor de la Universidad de Yale AGRADECIMIENTOS A todas las personas que con tanta dedicación y abnegación nos han ayudado a realizar esta investigación. Con profunda gratitud a nuestro tutor M. Sc. Sergio Rodríguez Arias y a los demás profesores del Departamento de Telecomunicaciones y Electrónica que nos orientaron con sus conocimientos y experiencias. Al profesor Carlos García de la Facultad de Matemática Física y Computación, quien oportunamente nos nutrió de conocimientos actualizados en materia de programación. A Bryan Pérez Suárez técnico en Informática. DEDICATORIA A nuestras madres, quienes inagotablemente han dedicado con amor algo más que su vida a la formación de sus hijos. A nuestras familias que durante todo el transcurso de la carrera han dado apoyo incondicional de diversa índole TAREA TÉCNICA 1. Análisis del programa analítico de la asignatura de Sistemas con Microprocesadores y los objetivos a alcanzar en lo referido a la arquitectura de Microprocesadores y lenguaje ensamblador. 2. Definición de los recursos a desarrollar de acuerdo a las conclusiones que se lleguen en el punto 1, teniendo en cuenta: a. Arquitectura del Microprocesador. b. Set instrucciones. c. Interrupciones y servicios fundamentales. d. Lenguaje ensamblador. e. Programación modular y bibliotecas. f. Ejemplos de aplicaciones. 3. Desarrollar los diferentes recursos antes definidos. 4. Puesta a punto y comprobación práctica de los programas ejemplos confeccionados. 5. Confesión de un Manual de referencia en soporte magnético para el programador del lenguaje ensamblador. 6. Confección del informe técnico. RESUMEN El presente trabajo se hace a partir de la necesidad de reunir los recursos invariantes necesarios para la enseñanza de la forma más eficiente del lenguaje ensamblador de la familia de microprocesadores que forman los computadores personales. El mismo constituye por lo tanto un material de apoyo a la asignatura de Sistemas de Microprocesadores. Con la elaboración de este material se intenta reunir los elementos esenciales que precisa un programador en lenguaje ensamblador y se actualiza este tema en cuanto a nuevas directivas que van surgiendo. De Igual forma se explica el uso de nuevas técnicas y herramientas de programación que van surgiendo con el desarrollo siempre constante de la computación. Finalmente se incentiva la creatividad del programador demostrando la potencialidad del lenguaje ensamblador y su inverosímil uso dentro de superlenguajes mediante la presentación de diversos programas ejemplos que se compilaron con diferentes Macroensambladores con el ánimo de expandir los conocimientos sobre los mismos. ÍNDICE Página INTRODUCCIÓN Capítulo 1 Generalidades de la asignatura sistemas con microprocesadores Introducción 1.1 La carrera de ingeniería en Telecomunicaciones y Electrónica 1 1.1.1 Objetivos educativos 1.1.2 Objetivos instructivos 1.2 La asignatura sistema con microprocesadores 2 1.2.1 Vinculación horizontal 1.2.2 Vinculación vertical 1.3 Características generales de la asignatura 5 1.3.1 Objetivos generales de la asignatura 1.3.2 Sistema de conocimientos 1.4 La enseñanza del lenguaje ensamblador 7 1.5 Análisis bibliográfico 8 1.6 Conclusiones parciales 9 CAPÍTULO 2 Arquitectura del microprocesador de PC de la familia Intel Introducción 2.1 Estructura y funcionamiento del Microprocesador 12 2.2 Registros internos de la familia INTEL 13 2.2.1 Registros de propósitos generales 2.2.2 Apuntadores e índices 2.2.3 Puntero de instrucción 2.2.4 Registro de bandera 2.2.5 Registros de segmentos 2.3 Modo de trabajo del Microprocesador 16 2.3.1 Modo Real 2.3.2 Modo Protegido 2.3.3 Modo Virtual 8086 2.4 Estructura y funcionamiento de la memoria 18 2.4.1 La Memoria paginada 2.4.2 La Memoria segmentada 2.4.3 La Memoria de segmentos paginados 2.5 Direccionado de Memoria 20 2.5.1 Direccionado en Modo Real 2.5.2 Direccionado de memoria en Modo Protegido 2.6 Modos de Direccionado de datos 22 2.6.1 Direccionamiento por registros 2.6.2 Direccionamiento inmediato 2.6.3 Direccionamiento Directo 2.6.4 Direccionamiento indirecto por registro 2.6.5 Direccionado base más índice 2.6.6 Direccionado relativo por registro 2.6.7 Direccionamiento relativo base más índice 2.6.8 Direccionamiento índice escalado 2.7 Estructura y funcionamiento de la Pila 26 2.8 Instrucciones del Microprocesador de PC 27 2.9 Introducción a las interrupciones 27 2.10 El Microprocesador Pentium y su desarrollo actual 29 2.11Conclusiones Parciales 30 CAPÍTULO 3 Lenguaje ensamblador para microprocesadores de la familia Intel Introducción 3.1 Introducción a la edición de un programa en lenguaje ensamblador 31 3.2 Constantes y operadores 33 3.2.1 Operadores aritméticos 3.2.2 Operadores lógicos y relacionales 3.2.3 Operadores de retorno de valores 3.2.4 Operadores de atributos 3.3 Principales directivas 36 3.3.1 Directivas de definición de datos 3.3.2 Directivas de definición de símbolos 3.3.3 Directivas del control del ensamblador 3.3.4 Directivas de definición de segmentos y procedimientos
Description: