Anda di halaman 1dari 19

INTRODUCCION

Todo procesador, grande o pequeo, desde el de una calculadora hasta el de un supercomputador, ya sea de propsito general o especfico, posee un lenguaje nico que es capaz de reconocer y ejecutar.

Por razones que resultan obvias, este lenguaje ha sido denominado Lenguaje de Mquina compuesto por una serie de instrucciones y ms que ser propio de un computador pertenece a su microprocesador. Este lenguaje es un conjunto de nmeros que representan las operaciones que realiza el microprocesador a travs de su circuitera interna.

Siendo el lenguaje de mquina un conjunto de nmeros, cmo es capaz el microprocesador de saber cundo un nmero representa una instruccin y cundo un dato? El secreto de esto reside en la direccin de inicio de un programa y en el estado del microprocesador. La direccin 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 cundo ste espera una instruccin y cundo ste espera un dato.

Con el lenguaje de mquina obtenemos un control total del microprocesador, la programacin en este lenguaje resulta muy difcil y fcil para cometer errores.

No tanto por el hecho de que las instrucciones son slo nmeros, sino porque se debe calcular y trabajar con las direcciones de memoria de los datos, los saltos y las direcciones de llamadas a subrutinas, adems de que para poder hacer ejecutable un programa. Para facilitar la elaboracin de programas a este nivel, se desarrollaron los Ensambladores y el Lenguaje Ensamblador.

Existe una correspondencia 1 a 1 entre las instrucciones del lenguaje de mquina y las del lenguaje ensamblador. Cada uno de los valores numricos del lenguaje de mquina tiene una representacin simblica de 3 a 5 letras como instruccin del lenguaje ensamblador.
Adicionalmente, este lenguaje proporciona un conjunto de pseudo-operaciones (tambin conocidas como directivas del ensamblador) que sirven para definir datos, rutinas y todo tipo de informacin para que el programa ejecutable sea creado de determinada forma y en determinado lugar.

INTERPRETES, COMPILADORES Y ENSAMBLADORES.


Aun cuando el lenguaje ensamblador fue diseado para hacer ms fcil la programacin de bajo nivel, sta resulta todava complicada y muy laboriosa. Por tal motivo se desarrollaron los lenguajes de alto nivel, para facilitar la programacin de los computadores, minimizando la cantidad de instrucciones a especificar. Sin embargo, esto no quiere decir que el microprocesador ejecute dichos lenguajes. Cada una de las instrucciones de un lenguaje de alto nivel o de un nivel intermedio, equivalen a varias de lenguaje mquina o lenguaje ensamblador. La traduccin de las instrucciones de nivel superior a las de bajo nivel la realizan determinados programas. Por una parte tenemos los interpretes, como DBase, BASIC, APL, y Lisp. En estos, cada vez que se encuentra una instruccin, se llama una determinada rutina de lenguaje de mquina que se encarga de realizar las operaciones asociadas, pero en ningn momento se genera un cdigo objeto y mucho menos un cdigo ejecutable.

Por otra parte, tenemos los compiladores, como los desarrollados para Fortran, Clipper, COBOL, Pascal o C, que en vez de llamar y ejecutar una rutina en lenguaje de mquina, stos juntan esas rutinas para formar el cdigo objeto y llamadas a otros programas y servicios del sistema operativo, se transformar en el programa ejecutable. Finalmente, tenemos los ensambladores que son como una versin reducida y elemental de un compilador (pero que de ninguna manera deben considerarse como tales), ya que lo nico que tienen que hacer es cambiar toda referencia simblica por la direccin correspondiente, calcular los saltos, resolver referencias y llamadas a otros programas, y realizar el proceso de enlace. Los ensambladores son programas destinados a realizar el ensamblado de un determinado cdigo. Debido al tipo de microprocesador empleado, la memoria de la PC se encuentra dividida en una serie de blocks denominados segmentos, de 64KB cada uno. La memoria es accedida especificando el segmento y el desplazamiento dentro del segmento (segmento:desplazamiento).

OPERACIONES CON INSTRUCCIONES:


Hay diferentes tipos de operaciones:

De transferencia de datos : Es la ms tpica, implica mover datos desde un sitio a otro. Se ha de especificar la direccin de entrada y la direccin de destino, y la longitud a transferir.
Aritmticas : Cuando se usan las operaciones bsicas (suma, resto, multiplicacin y divisin). Tambin hay de otros tipos como coger el valor absoluto de un nmero, negar (invertir) el operando. Se pueden llevar a cabo sobre nmeros enteros, pero tambin es necesario sobre reales. Este tipo de operaciones son llevadas a cabo por la ALU, la cual puede hacer necesario una operacin de transferencia de datos. Lgicas : Realizan operaciones bit a bit, lo hace intermediando operaciones boleanas NOT AND OR XOR.... Tienen mltiples utilidades, sobre todo si se combinan con operaciones que muevan bit a bit.

De conversin : Se cambia el formato de los datos, puede ser

necesario involucrar alguna operacin de: transferencia, aritmticas, lgicas, etc. ... De Entrada/Salida : Tienen que ver con la gestin de los dispositivos de E/S, a menudo utilizan interrupciones. De control del sistema : Tienen ciertos privilegios sobre los otros tipos de operaciones, por lo general solamente pueden ser ejecutadas por el Sistema Operativo. De transferencia de control : Cambian el orden secuencial normal de la ejecucin de un programa. la operacin que indique estas instrucciones es el cambio del contador del PC (memoria interna de la CPU) a la siguiente direccin a procesar. se usan para acortar la longitud de programas.

REGISTROS DE LA ALU
Su misin es realizar las operaciones con los datos que recibe, siguiendo las indicaciones dadas por la unidad de control.
El nombre de unidad aritmtica y lgica se debe a que puede realizar operaciones tanto aritmticas como lgicas con los datos transferidos por la unidad de control. La unidad de control maneja las instrucciones y la aritmtica y lgica procesa los datos. Para que la unidad de control sepa si la informacin que recibe es una instruccin o dato, es obligatorio que la primera palabra que reciba sea una instruccin, indicando la naturaleza del resto de la informacin a tratar.

Para que la unidad aritmtica y lgica sea capaz de realizar una operacin aritmtica, se le deben proporcionar, de alguna manera, los siguientes datos:

1. El cdigo que indique la operacin a efectuar. 2. La direccin de la celda donde est almacenado el primer sumando. 3. La direccin del segundo sumando implicado en la operacin. 4. La direccin de la celda de memoria donde se almacenar el resultado. Los Registros son un medio de ayuda a las operaciones realizadas por la unidad de control y la unidad aritmtica y lgica. Permiten almacenar informacin, temporalmente, para facilitar la manipulacin de los datos por parte de la CPU. Realizando una similitud con el resto del sistema informtico, los registros son a la CPU como la memoria principal es a la computadora.

Los registros del procesador se emplean para controlar instrucciones en ejecucin, manejar direccionamiento de memoria y proporcionar capacidad aritmtica. Los registros son espacios fsicos dentro del microprocesador con capacidad de 4 bits hasta 64 bits dependiendo del microprocesador que se emplee. Los registros se dividen en:

Registros de segmento Registros de apuntadores de instrucciones Registros apuntadores Registros de propsitos generales Registro ndice Registro de bandera.

REGISTROS DE SEGMENTO DE MEMORIA


Un registro de segmento se utiliza para alinear en un limite de prrafo o dicho de otra forma codifica la direccin de inicio de cada segmento y su direccin en un registro de segmento supone cuatro bits 0 a su derecha. Un registro de segmento tiene 16 bits de longitud y facilita un rea de memoria para direccionamientos conocidos como el segmento actual. Los registros de segmento son: (CS) Registro Segmento de Cdigo El DOS almacena la direccin inicial del segmento de cdigo de un programa en el registro CS. Esta direccin de segmento, mas un valor de desplazamiento en el registro de apuntado de instruccin (IP), indica la direccin de una instruccin que es buscada para su ejecucin. Para propsito de programacin normal, no se necesita referenciar el registro CS.

(SS) Registro Segmento de la Pila El registro SS permite la colocacin en memoria de una pila, para almacenamiento temporal de direcciones y datos. El DOS almacena la direccin de inicio del segmento de pila de un programa en el registro SS. Esta direccin de segmento, ms un valor de desplazamiento en el registro del apuntador de la pila (SP), indica la palabra actual en la pila que est siendo direccionada. Para propsitos de programacin normal, no se necesita referenciar el registro SS.

(DS) Registro Segmento de Datos La direccin inicial de un segmento de datos de programa es almacenada en el registro DS. En trminos sencillos, esta direccin, mas un valor de desplazamiento en una instruccin, genera una referencia a la localidad de un bytes especifico en el segmento de datos.
(ES) Registro Segmento de Datos Extra Algunas operaciones con cadenas de caracteres (datos de caracteres) utilizan el registro esta de segmento para manejar el direccionamiento de memoria. En este contexto, el registro ES esta asociado con el registro DI (ndice) un programa que requiere el uso del registro ES puede inicializarlo con una direccin apropiada.

REGISTRO APUNTADOR INSTRUCCIONES.(IP)

DE

El registro apuntador de instrucciones (IP) de 16 bits contiene el desplazamiento de direccin de la siguiente instruccin que se ejecuta. El registro IP esta asociado con el registro CS en el sentido de que el IP indica la instruccin actual dentro del segmento de cdigo que se esta ejecutando actualmente. En el ejemplo siguiente, el registro CS contiene 25A40H y el IP contiene 412H. Para encontrar la siguiente instruccin que ser ejecutada el procesador combina las direcciones en el CS y el IP as: Segmento de direccin en el registro CS: 25A40H Desplazamiento de direccin en el registro IP: + 412H Direccin de la siguiente instruccin: 25E52H

REGISTROS APUNTADORES
Los registros apuntadores estn asociados con el registro SS y permiten al procesador accesar datos en el segmento de pila los registros apuntadores son dos: Registro SP: El apuntador de pila de 16 bits esta asociado con el registro SS y proporciona un valor de desplazamiento que se refiere a la palabra actual que esta siendo procesada en la pila. El ejemplo siguiente el registro SS contiene la direccin de segmento 27B3[0]H y el SP el desplazamiento 312H Para encontrar la palabra actual que esta siendo procesada en la pila el microprocesador combina las direcciones en el SS y el PP: Direccin de segmento en el registro SS: 27B30H Desplazamiento en el registro SP: + 312H Direccin en la Pila: 27E42H

Registro BP: El registro BP de 16 bits facilita la referencia de parmetros, los cuales son datos y direcciones transmitidos va rpida.

REGISTROS DE PROPOSITO GENERAL


Los registros de propsitos generales AX, BX, CX y DX son los caballos de batalla o las herramientas del sistema. Son los nicos en el sentido de que se puede direccionarlos como una palabra o como una parte de un byte. El ultimo byte de la izquierda es la parte "alta", y el ultimo byte de la derecha es la parte "baja" por ejemplo, el registro CX consta de una parte CH (alta) y una parte CL (baja), y usted puede referirse a cualquier parte por su nombre. Las instrucciones siguientes mueven ceros a los registros CX, CH y CL respectivamente. Mov CX, 00 Mov CH, 00 Mov CL, 00

(AX) Registro de Datos El registro AX, el acumulador principal, es utilizado para operaciones que implican entrada/salida y la mayor parte de la aritmtica. Por ejemplo, las instrucciones para multiplicar, dividir y traducir suponen el uso del AX. Tambin, algunas operaciones generan cdigo ms eficientes si se refiere al AX en lugar de los otros registros.

(BX) Registro de Datos El BX es conocido como el registro base ya que es el nico registro de propsitos generales que pueden ser unos ndices para direccionamiento indexado. Tambin es comn emplear al BX para clculos.
(CX) Registro de Datos El CX es conocido como el registro contador. Puede contener un valor para controlar el nmero de veces que un ciclo se repite o un valor para corrimiento de bits, hacia la derecha o hacia la izquierda. El CX tambin es usado para muchos clculos. (DX) Registro de Datos El DX es conocido como el registro de datos. Algunas operaciones de entrada/salida requieren su uso, y las operaciones de multiplicacin y divisin con cifras grandes suponen al DX y al AX trabajando juntos. Puede usar los registros de propsitos para suma y resta de cifras de 8, 16, 32 bits.

REGISTRO NDICE
Los registros SI y DI estn disponibles para direccionamientos indexados y para sumas y restas. Que son la operaciones de punta. Registro SI: El registro ndice de 16 bits es requerido por algunas operaciones con cadenas (de caracteres). En este contexto, el SI est asociado con el registro DS. Registro DI: El registro ndice destino tambin es requerido por algunas operaciones con cadenas de caracteres. En este contexto, el DI est asociado con el registro ES.

REGISTRO DE BANDERA
Los registros de banderas sirven parar indicar el estado actual de la maquina y el resultado del procesamiento, Cuando algunas instrucciones piden comparaciones o clculos aritmticos cambian el estado de las banderas. Las banderas mas comunes son las siguientes: OF (Over flow flag, desbordamiento): Indica el desbordamiento de un bit de orden alto (mas a la izquierda) despus de una operacin aritmtica. DF (Direction flag, Direccion): Designa la direccin hacia la izquierda o hacia la derecha para mover o comparar cadenas de caracteres.

IF (Interruption flag, Interrupcion): Indica que una interrupcin externa, como la entrada desde el teclado sea procesada o ignorada

TF (Trap flag, Trampa): Examina el efecto de una instruccin sobre los registros y la memoria. Los programas depuradores como DEBUG, activan esta bandera de manera que pueda avanzar en la ejecucin de una sola interrupcin a un tiempo. SF (Sign flag, Signo): Contiene el signo resultante de una operacin aritmtica (0=positivo y 1= negativo). ZF (Zero flag, Zero): Indica el resultado de una operacin aritmtica o de comparacin (0= resultado diferente de cero y 1=resultado igual a cero). AF (Auxiliary carry flag, Acarreo auxiliar): Contiene un acarreo externo del bit 3 en un dato de 8 bits, para aritmtica especializada PF (Parity flag, Paridad): Indica paridad par o impar de una operacin en datos de ocho bits de bajo orden (mas a la derecha). CF (Carry flag, Acarreo): Contiene el acarreo de orden mas alto (mas a la izquierda) despus de una operacin aritmtica; tambin lleva el contenido del ultimo bit en una operacin de corrimiento o rotacin.

Anda mungkin juga menyukai