Vous êtes sur la page 1sur 11

INSTITUTO TECNOLGICO SUPERIOR DE URUAPAN

Lenguaje Ensamblador
Carrera: Ingeniera en Sistemas Computacionales

Materia: Programacin de Sistemas.

Presenta: Isai Esparza Agustn. Edgar Alejandro Torres Carrillo.

Uruapan, Michoacn

05 diciembre de 2011

Generacin de cdigo objeto. (8.3, 8.3.1, 8.3.2, 8.4) Introduccin.


Los ordenadores cuentan tambin con memoria como parte principal de su desempeo, la cual est definida en memoria RAM (Memoria de acceso directo) y la memoria ROM (Memoria de solo lectura). Dentro de estas memorias, ocurren todas las ejecuciones de los programas anotados en los registros del procesador, siendo la primera la que permite la escritura y modificacin de las localidades de memoria, y la segunda que solo permite la ejecucin sin capacidad de ser modificada. Otra parte importante y vital del procesador, as como los procesos del ordenador, son los registros. Estos son utilizados para alojar instrucciones bsicas, como operaciones aritmticas e instrucciones analgicas enviadas a ellos. Dentro del lenguaje ensamblador se utilizan cuatro registros de uso general, los cuales tienen un tamao de 16 bits pudiendo ser divididos obteniendo un sub-registro de 8 bits. El lenguaje ensamblador es un lenguaje de bajo nivel empleado para la programacin de tareas de arranque desde la CPU. Este lenguaje est diseado para los procesadores construidos bajo la arquitectura de Von Newman o tambin conocidos como computadoras IBM. Este lenguaje malamente traducido al espaol, es utilizado para programar los pulsos que recibir desde el teclado as como para instalar ejecutables con dentro de un procesador. Esto es importante pues sin l, no podramos instalar los programas necesarios para el ptimo desempeo de nuestro ordenador as como la utilizacin de perifricos como el teclado y ratn, los cuales nos permiten interactuar con la computadora.

Registros.
El CPU cuenta con 14 registros internos cada uno de 16 bits, los primeros cuatro (AX, BX, CX, DX) son de uso general y se pueden usar tambin como registros de 8 bits. Los registros del procesador se emplean para controlar instrucciones en ejecucin, manejar direccionamiento de memoria y proporcionar capacidad aritmtica.

Registros de segmento.
Registro CS: El DOS almacena la direccin inicial del segmento de cdigo de un programa en el registro CS, para propsitos de programacin normal, no se necesita referenciar el registro CS. Registro DS: La direccin inicial de un segmento de datos de programa es almacenada en el registro DS. Esta direccin ms un valor de desplazamiento en una instruccin, genera una referencia a la localidad de un byte especifico en el segmento de datos. Registro SS: 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. Registro ES: Algunas operaciones con cadenas de caracteres utilizan el registro extra 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 de segmento apropiada. Registros FS y GS: Son registros extra de segmento en los procesadores 80386 y posteriores.

Estos registros son los que comnmente utilizamos y podemos observar con detenimiento sus ejecuciones, puesto que estn al alcance de todos los procesadores y su trabajo es fcil de palpar visualmente en el ordenador.

Una lista amplia de todos los registros del procesador as como un esquema que los ilustra la encontramos a continuacin. AX Acumulador BX Registro base CX Registro contador DX Registro de datos DS Registro del segmento de datos ES Registro del segmento extra SS Registro del segmento de pila CS Registro del segmento de cdigo BP Registro de apuntadores base SI Registro ndice fuente DI Registro ndice destino SP Registro del apuntador de la pila IP Registro de apuntador de siguiente instruccin F Registro de banderas

Registros de propsito general.

Los registros de propsito general AX, BX, CX, DX son los ms utilizados del sistema. Son nicos en el sentido de que se puede direccionarlos como una palabra o comuna parte de un byte. El ltimo byte de la izquierda es la parte alta, y el ltimo byte de la derecha es la parte baja. Registro AX: El registro AX, el acumulador principal, es utilizado para operaciones que implican entrada/salida y la mayor parte de la aritmtica. Registro BX: El registro BX es conocido como el registro base ya que este es el nico registro de propsito general que puede ser un ndice para direccionamiento indexado. Registro CX: El registro 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. Registro DX: El DX es conocido como el registro de datos, algunas operaciones entrada/salida requieren su uso, y las operaciones de multiplicacin y divisin con cifras grandes suponen al DX y al AX trabajando juntos.

Registro de Banderas.

De los 16 bits del registro de banderas, nueve son comunes a toda la familia de procesadores 8086, y sirven para indicar el estado actual de la maquina y el resultado del procesamiento. Muchas instrucciones que piden comparaciones y aritmtica cambian el estado de las banderas, algunas cuyas instrucciones pueden realizar pruebas para determinar la accin subsecuente. OF (overflow, desbordamiento): Indica desbordamiento de un bit de orden alto despus de una operacin aritmtica.

DF (direccin): Designa la direccin hacia la izquierda o hacia la derecha para mover o comparar cadenas de caracteres.

IF (interrupcin): Indica que una interrupcin externa, como la entrada desde el teclado sea procesada o ignorada. TF (trampa): Permite la operacin del procesador en modo de un paso. Los programas depuradores, como DEBUG, activan esta bandera de manera que se pueda avanzar en la ejecucin de una sola instruccin a un tiempo, para examinar el efecto de esa instruccin sobre los registros y la memoria.

SF (signo): Contiene el signo resultante de una operacin aritmtica. ZF (cero): Indica el resultado de una operacin aritmtica o de comparacin. AF (acarreo auxiliar): Contiene un acarreo externo del bit 3 en un dato de ocho bits, para aritmtica especializada. PF (paridad): Indica paridad par o impar de una operacin en datos de ocho bits de bajo orden. CF (acarreo): Contiene el acarreo de orden ms alto despus de una operacin aritmtica as como el contenido del ltimo bit en una operacin de corrimiento o de rotacin.

Las banderas ms importantes para la programacin en ensamblador son O, S, Z Y C, para operaciones de comparacin y aritmticas, y D para operaciones de cadenas de caracteres.

Distribucin Lenguaje Ensamblador.

Dentro de la distribucin del lenguaje ensamblador, se trata la portabilidad que este pueda poseer. Un lenguaje ensamblador puede ser ejecutado en cualquier microchip o microprocesador basado en la arquitectura Von Newman, esto es, que cuente con memoria, registros, y puertos 1/0. Dentro de la programacin de un ordenador, este lenguaje puede ser ejecutado en aquel sistema operativo basado en el DOS (Disk Operating System) el cual brinda acceso independiente a todos los dispositivos y recursos de la computadora. Esto es, que debido a la utilizacin de un BIOS, los dispositivos se cargan de inmediato desde el arranque sin detenerse a tener que ser instalados cada vez que se arranque la computadora. Actualmente conocemos varias extensiones de programas, los cuales para poder ser ejecutados necesitan un rea reservada que es conocida generalmente como pila, as cada programa ensamblado necesita un rea para reservada en el procesador para poder ser ejecutado en el. Una vez revisados todos los requerimientos internos del procesador y a su vez de la computadora, debemos analizar que para poder programar y ejecutar un cdigo de lenguaje ensamblador debemos contar con un compilador especializado para el lenguaje que estamos utilizando.

Esta imagen describe lo que se necesita para poder ejecutar un cdigo de ensamblador a nivel de hardware interno del procesador.

Administracin de Memoria.
La administracin de memoria que tenga el lenguaje ensamblador depende esencialmente del procesador con el que se cuente y esta se puede manejar de la siguiente manera. Memoria de programa: Esta contiene todos los datos, las instrucciones, las tablas y cadenas de caracteres usadas en el programa, el tamao mximo de esta es de 64k y se ejecuta nicamente en el registro DP. Memoria externa de datos: Esta contiene las variables y estructuras de datos que no caben en la memoria interna del Microprocesador, esta memoria se direcciona principalmente por el registro DP aunque tambin puede ser colocado en un banco de memoria externa de datos ampliando con un tamao de 256 bytes usando los registros de propsito general.

Memoria Interna de Datos: Es la memoria de datos ms importante ya que en ella es donde residen cuatro bancos de registros de propsito general; la pila del programa, 128 de los 256 bits de un rea de memoria direccionable por bit y todas las variables y estructuras de datos operadas directamente por el programa, el tamao mximo de esta es de 256 bytes. Registro de Funciones Especiales: Es destinado para los puertos de entrada/salida, temporizadores y puerto serie del circuito integrado. Estos registros incluyen al SP, al registro de la palabra de estado y al Acumulador. El tamao mximo de este es de 128 bytes. Memoria de bit: Se usa para almacenar variables y banderas de un bit. El tamao mximo es de 256 bits, los cuales son compartidos con el espacio de la Memoria Interna de Datos y los otros con los registros de Funciones Especiales.

La terea de administrar la memoria es llevada a cabo por el OS y el hardware y tiene algunas restricciones as como requisitos para saber que se est llevando a cabo de la manera correcta, estos requisitos son: Relocalizacin. Proteccin. Comparticin. Organizacin Lgica. Organizacin Fsica.

Conclusiones.
Es importante saber el manejo de un lenguaje ensamblador dentro de una maquina as como los procesos que se llevan dentro del procesador para poder programar un optimo compilador. Quizs, a simple vista estos temas no tengan mucha relacin con el desarrollo de los analizadores y compiladores que se han intentando crear durante la clase, pero si analizamos con detenimiento un compilador ya creado, como el NetBeans, este se instala dentro del OS y se ejecuta a travs de comandos y lneas simples empotradas en el procesador, cosa que es vital no solo para ejecutar un compilador, si no para ejecutar cualquier programa en un ordenador. A su vez, la parte ms importante de esto es el saber administrar la memoria de procesador, ya que si sobrecargamos o movemos alguna instruccin fuera del registro que le corresponde nuestro programa no tendr un buen desempeo pudiendo daar la maquina.

10

11

Vous aimerez peut-être aussi