Sei sulla pagina 1di 10

Curso de Lenguaje Ensamblador Captulo 1 Introduccin Con la aparicin de las computadoras personales (PC) y la reduccin en el costo de las mismas,

el microprocesador se convirti en uno de los dispositivos ms importantes en la historia de la electrnica Un microprocesador es un circuito electrnico de muy alta escala de integracin, capaz de realizar una infinidad de tareas de forma repetitiva a velocidades muy altas. Esto se logra por medio de la lgica dictada por un conjunto de instrucciones que el microprocesador interpreta y ejecuta, estas instrucciones reciben el nombre de programa. Programa: conjunto de rdenes e instrucciones que se le asignan a una computadora, por medio de un lenguaje de programacin Lenguaje de programacin: traductor e intrprete de las rdenes e instrucciones que se le asignan a una computadora. Le permite al usuario crear programas que sern entendidos por la PC (directa o indirectamente) con el objetivo de que realice una tarea.

Historia de los Lenguajes de Programacin El primer lenguaje de programacin creado y utilizado fue el Lenguaje Maquina Lenguaje Maquina: es el nico lenguaje el cual entiende directamente la computadora, utiliza el alfabeto binario que consta de los dos nicos smbolos 0 y 1 denominados bits. Dej de utilizarse por su dificultad y complicacin. Ejemplo: 0000 0011 0101 01A1 1000 1001 1010 899A

Lenguaje Ensamblador: es el primer intento de sustituir al lenguaje maquina. Este lenguaje cada instruccin equivale a una instruccin en lenguaje maquina, utilizando palabras nemotcnicas en lugar de dgitos 0 y 1. Palabras nemotcnicas: son ms fcil de recordar que las secuencias de dgitos 0 a 1.

Ejemplo:

inicio: ADD B,1 MOV A, E CMP A, B JE FIN JMP FIN Fin END

Los Lenguajes de Programacin se clasifican en: Bajo Nivel Se llama de bajo nivel porque estn muy cercanos al hardware de la PC. Es necesario conocer a fondo la arquitectura de la mquina para la que se va a programar. Son lenguajes totalmente dependientes de la mquina, es decir, que el programa que se realiza con este tipo de lenguajes no se pueden migrar o utilizar en otras mquinas. Al estar prcticamente diseados a medida de hardware, aprovechan al mximo las caractersticas del mismo. Lenguaje maquina: este lenguaje ordena a la maquina las operaciones fundamentales para su funcionamiento. Consiste en la combinacin de 0 y 1 para formar las ordenes entendibles, para el hardware de la mquina. Este lenguaje es mucho ms rpido que los lenguajes de alto nivel. La desventaja es que son muy difciles de manejar y utilizar, adems de tener cdigos fuentes enormes, donde encontrar un fallo es casi imposible. El lenguaje ensamblador es un derivado del lenguaje mquina y est formado por abreviaturas de letras y numero llamadas nemotcnicas. 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 al cdigo mquina, es que los cdigos fuente eran ms cortos y los programas creados ocupaban menos memoria. Ventajas 1.- Velocidad.- como trabaja directamente con el microprocesador al ejecutar un programa, la computadora lo procesa ms rpido. 2.- eficiencia de tamao.- un programa en ensamblador no ocupa mucho espacio en memoria. 3.- flexibilidad.- mayor control sobre el hardware de la computadora.

Desventajas 1.- tiempo de programacin.- como es un lenguaje de najo nivel requiere ms instrucciones para realizar el mismo proceso, en comparacin con un lenguaje de alto nivel. 2.- cdigo fuente muy grande.- por las mismas razones que aumenta el tiempo, crecen los cdigos fuente, simplemente requerimos ms instrucciones primitivas para describir procesos equivalentes. Esto es una desventaja porque dificulta el mantenimiento de los programas y nuevamente reduce la productividad de los programadores. 3.- peligro de afectar recursos inesperadamente.- todo error que podamos cometer, o todo riesgo que podamos tener, podemos afectar los recursos de la mquina, programar en este lenguaje lo ms comn que pueda pasar en que la maquina se bloquee o se reinicie.

Nivel Intermedio Se trata de un trmino no aceptado por todos, pero que seguramente habrs escuchado, estos lenguajes se encuentran en un punto medio entre los de bajo nivel y de alto nivel. Suelen ser clasificados muchas veces de alto nivel, pero permiten ciertos manejos de bajo nivel. Son precisos para ciertas aplicaciones como la creacin de sistemas operativos, ya que permiten un manejo abstracto (independiente de la mquina, a diferencia del ensamblador) pero sin perder mucho del poder y eficiencia que tienen los lenguajes de bajo nivel. Dentro de estos lenguajes podra situarse C ya que puede acceder a los registros del sistema, trabaja con direcciones de memoria, todas esas caractersticas de lenguaje de bajo nivel y la vez realizar operaciones de alto nivel.

Alto Nivel Tipo de lenguaje de programacin que te permite escribir programas (algoritmos) que son ms o menos independientes de un tipo particular de computadora, estos lenguajes son considerados de alto nivel, porque son ms parecidos al lenguaje natural humano y ms lejano al lenguaje de las maquinas. La principal ventaja de los lenguajes de alto nivel sobre los de bajo nivel, es que son ms fciles de leer, escribir y mantener por humanos. Al final, los programas escritos en alto nivel deben ser traducidos en un lenguajes maquina especifico empleando un compilador o un intrprete. De esta manera pueden ser ejecutados por una maquina especifica.

Compilador: un compilador toma un texto (cdigo fuente) escrito en un lenguaje de alto nivel y lo traduce a un lenguaje comprensible por las computadoras (cdigo maquina). A este proceso de traduccin se le conoce como compilacin.

CODIGO FUENTE

TRADUCCION Ensamblador, interprete, compilador

CODIGO MAQUINA 0001 0010

Los primeros lenguajes de programacin de alto nivel fueron diseados en los 50. Actualmente existen cientos de lenguajes de estos tipo como Ada, Algol, BASIC, COBOL, C, C++, FORTRAN, LIPS, Pascal, Prolog, Visual Basic

Captulo 2

Microprocesador: es un circuito electrnico integrado que acta como unidad central de proceso de un PC, proporcionando el control de las operaciones de clculo. Su arquitectura interna consta de las siguientes partes: Unidad de control (control Unit) Unidad Aritmtica Lgica Registros Internos Buses Internos Interrupciones

Arquitectura Interna del Microprocesador

El funcionamiento bsico de un microprocesador, consiste en leer y ejecutar paso a paso todas y cada una de las ordenes programadas por el diseador del sistema (programador). El proceso de funcionamiento es el siguiente: 1.- el microprocesador al iniciarse como todos los sistemas secuenciales, se inicializar en una posicin de memoria definida. 2.- el sistema lee el dato que hay en esa posicin y lo enva a la Unidad de Control. 3.- La unidad de control decodifica la instruccin y la ejecuta dando las seales adecuadas. 4.- se incrementa el contador de programa (registro interno que se encarga de indicar a que posicin de memoria hay que dirigirse). 5.- se repite el proceso desde el punto 2 y as sucesivamente hasta que una seal exterior (interrupcin) interrumpa el proceso. Esquema del Procesador

Unidad Aritmtica Lgica (ALU): es un circuito digital que calcula operaciones aritmticas (sumas, restas, multiplicaciones, divisiones, etc) y operaciones lgicas (OR, NOT, XOR, etc). Unidad de Control (Control Unit): se podra decir que es el cerebro del microprocesador, ya que genera todas las seales tanto de control interno como externo. A l le llegan unos cdigos (una combinacin de bits) que son decodificados y ejecutados. Estos cdigos, en general, pueden ser instrucciones de los siguientes tipos: 1.- la realizacin de una operacin aritmtica-lgica: en este caso adems de la instruccin, hay que indicar al sistema donde se encuentran los datos a operar.

2.- cargar o leer datos: esto puede servir para leer datos como temperatura, posicin de una pieza, etc. O bien accionar un motor, visualizar datos a travs de un led o display, etc. 3.- saltos o interrupciones: mediante este tipo de instrucciones, el microprocesador hace que el programa siga en otra zona de memoria o que realice lo que se llama una subrutina. Subrutina: es un programa con una funcin especfica y que se ejecuta desde varios posiciones cuando termina de ejecutarse la subrutina, el microprocesador regresa a la posicin siguiente, a la que estaba cuando se produjo la interrupcin. Registros internos: dentro del microprocesador hay una serie de posiciones de memoria. Estas posiciones de memoria interna son llamadas Registros, que pueden tener una utilidad general o una utilidad especifica. Los registros ms utilizados son: 1.- registros de datos: son utilizados para las operaciones aritmtico-lgicas, manipulacin de datos, etc. 2.- registro de direcciones: son aquellos que el microprocesador utiliza para accedes a una posicin del mapa de memoria. Hay fundamentalmente tres: A).- contador de programa: es el registro que normalmente se utiliza para leer o escribir datos del programa. B).- puntero de pila: es el registro que el microprocesador utiliza para guardar y recuperar datos de uso interno. El registro define la posicin de memoria donde se encuentran dichos datos. C).- registros ndices: son utilizados para acceder a posiciones de memoria de forma relativa. 3.- Registro de estado: es un registro en el cual cada bits da una informacin especfica. Ejemplo: en una operacin nos dir si el resultado es positivo o negativo. Interrupciones: todos los microprocesadores disponen de unas entradas especiales para interrumpir la secuencia del programa y realizar un programa especial. Estas lneas se utilizan solo para casos especiales. Buses Internos: son caminos de comunicacin que conectan 2 o ms dispositivos, al igual que para direccionar memoria y leer datos, es necesario que se organicen buses, internamente tambin son necesarios para acceder a las diferentes partes del circuito. Una de las caractersticas de los microprocesadores, es que los datos, direcciones y otras lneas de control pueden ser compartidas por diferentes circuitos, por lo que hay que organizarlos como buses.

En un microprocesador hay 3 tipos de buses: 1.- bus de direcciones: por l se selecciona la posicin de memoria o el dispositivo al que se va a escribir o leer los datos. La dimensin o nmero de lneas que lo componen, depende del microprocesador que utilicemos. 2.- Bus de datos: es el conjunto de lneas por donde se transmiten los datos. A los microprocesadores se les suele dividir en funcin del nmero de bits que forman el dato. Inicialmente eran de 4 bits: despus se fueron fabricando circuitos con mayor capacidad como los de 8, 16, 32 y 64 bits. Esta evolucin ha sido forzada por la informtica, que cada vez que necesita unas prestaciones mayores. 3.- Bus de control: es utilizado para sincronizar las actividades y las transacciones con los perifricos del sistema.

Registro del Microprocesador Es una zona de memoria dentro del procesador donde se puede almacenar informacin, de forma que el acceso a esta informacin es instantneo, ya que no hay que utilizar el bus de datos que conecta el procesador con la memoria para obtener dichos datos. Adems que son los encargados de interpretar las instrucciones de alto nivel y ejecutarlas en el lenguaje maquina correspondiente. Los registros se dividen en 5 grupos, segn sus funciones: Registro de propsito general: se encarga de direccionar a diferentes localidades de memoria las instrucciones que una computadora no puede realizar. Otro funcionamiento de estos registros es que se encargan de preparar al hardware para que realice una operacin, los registros de propsito general son los siguientes: AX (Registro Acumulador): este registro es el encargado de almacenar el resultado de algunas operaciones aritmticas y lgicas. Puede utilizarse como registros de 16 bits o como 2 registros de 8 bits (byte superior e inferior), cambiando la X por la H o L segn queramos referirnos a la parte alta o baja respectivamente. Por ejemplo: AX se descompone en AH (parte alta) y AL (parte baja) Siendo los bits ms significativos los del lado izquierdo y los menos significativos los de la derecha.

Registro de 16 bits Puede aplicarse a cualquier registro del microprocesador. Ejemplo: Registro AX

BX (Registro Base): se utiliza en transferencias de datos entre la memoria y el procesador. Esta dividido en BH y BL. CX (Registro Contador): dividido en CH y Cl, se utiliza como contador en bucles (LOOP) en operaciones con cadena (REP) y en desplazamientos (CL). DX (Registro de Datos): dividido en DH y DL, se utiliza en operaciones de multiplicacin y divisin junto con AX y en operaciones de entrada y salida de puertos, su mitad inferior DL contiene el nmero de puertos.

Registros de Segmento: le indican a la computadora en qu localidad de memoria se encuentra la primera instruccin de cada segmento:

CS (Segmento de cdigo): contiene la direccin base del lugar donde inicia el programa almacenado en memoria. DS (Segmento de Datos): contiene la direccin base del lugar del rea de memoria donde fueron almacenadas las variables del programa. ES (Segmento de Datos): este registro por lo general contiene la misma direccin que el registro DS. Se utiliza tambin para manipular perifricos. SS (Segmentos de Pila): contiene la direccin base del lugar donde inicia el rea de memoria reservada para la pila. Registros de Apuntadores: estos registros reciben su nombre porque su funcin principal es la de apuntar o direccionar hacia alguna direccin (localidad) de memoria especifica. BP (Apuntador Base): su funcin es la de proporcionar direcciones para la transferencia e intercambio de datos. SP (Apuntador de Pila): se encarga de controlar el acceso de los datos a la pila de los programas. Todos los programas en lenguaje ensamblador utilizan una pila para almacenar datos en forma temporal. Registros de ndices: existen dos registros llamados SI y DI que estn estrechamente ligados con operadores de cadena de datos. SI (ndice Fuente): proporciona la direccin inicial para que una cadena sea manipulada. DI (ndice Destino): proporciona la direccin de destino donde por lo general una cadena ser almacenada despus de alguna operacin de transferencia.

Registro Apuntador de Instrucciones: IP (apuntador de instrucciones): ejecuta la instruccin actual y aumenta su valor para llegar a la siguiente localidad de memoria y ejecutar otra instruccin.

Potrebbero piacerti anche