ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Generacion De Codigo Objeto


Enviado por   •  12 de Mayo de 2015  •  1.867 Palabras (8 Páginas)  •  238 Visitas

Página 1 de 8

INTRODUCCIÓN

El generador de código objeto transforma el código intermedio optimizado en código objeto de bajo nivel. Toma código intermedio y genera código objeto para la máquina considerada. Es la parte más próxima a la arquitectura de la máquina. Habitualmente, se escriben a mano, “desarrollo a medida” para cada máquina específica.

El lenguaje máquina fue el primero que empleo el hombre para la programación de

las primeras computadoras.

4.1 REGISTROS

Los registros del procesador se emplean para controlar instrucciones en ejecución,

manejar direccionamiento de memoria y proporcionar capacidad aritmética. Los

registros son espacios físicos dentro del microprocesador con capacidad de 4 bits

hasta 64 bits dependiendo del microprocesador que se emplee. Los registros son

direccionales por medio de una viñeta, que es una dirección de memoria. Los bits,

por conveniencia, se numeran de derecha a izquierda (15, 14, 13…. 3, 2, 1, 0), los

registros están divididos en seis grupos los cuales tienen un fin específico. Los registros son la memoria principal de la computadora. Existen diversos registros de propósito general y otros de uso exclusivo. Algunos registros de propósito general son utilizados para cierto tipo de funciones. Existen registros acumuladores, puntero de instrucción, de pila, etc

Los registros se dividen en:

• Registros de segmento

• Registros de apuntadores de instrucciones

• Registros apuntadores

• Registros de propósitos generales

• Registro índice

• Registro de bandera.

Registros de uso general

AX = Registro acumulador, dividido en AH y AL (8 bits cada uno).- Interviene en

las operaciones aritméticas y lógicas, después de la operación arroja un resultado.

BX = Registro base, dividido en BH y BL.- Se utiliza en transferencias de datos

entre la memoria y el procesador.

CX = Registro contador, dividido en CH y CL.- Se utiliza como contador en

bucles(LOOP), en operaciones con cadenas(REP), y en desplazamientos(CL).

DX = Registro de datos, dividido en DH y DL.- Se utiliza en operaciones de

multiplicación y división junto con Ax y en operaciones de entrada y salida de

puertos, su mitad inferior DL contiene el número de puertos.

Registros de segmento.

Un registro de segmento se utiliza para alinear en un límite de párrafo o dicho de

otra forma codifica la dirección de inicio de cada segmento y su dirección 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 (código), DS (datos), SS (pila), ES , FS y GS.

Registro Apuntador de instrucciones (IP)

El registro apuntador de instrucciones (IP) de 16 bits contiene el desplazamiento

de dirección de la siguiente instrucción que se ejecuta.

Registro índice

Los registros SI y DI están disponibles para direccionamientos indexados y para

sumas y restas. Que son las operaciones de punta.

Registro de bandera

Los registros de banderas sirven parar indicar el estado actual de la máquina y el

resultado del procesamiento, Cuando algunas instrucciones piden comparaciones

o cálculos aritméticos cambian el estado de las banderas.

4.2 LENGUAJE ENSAMBLADOR

La comunicación en lenguaje de máquina es particular de cada procesador que se

usa, y programar en este lenguaje es muy difícil y tedioso, por lo que se empezó a

buscar mejores medios de comunicación con ésta. Los lenguajes ensambladores

tienen ventajas sobre los lenguajes de máquina. Ahorran tiempo y requieren

menos atención a detalles.

El lenguaje Assembly es un tipo de lenguaje de bajo nivel utilizado para escribir

programas informáticos, y constituye la representación más directa del código

máquina específico para cada arquitectura de computadoras legible por un

programador.

Fue usado ampliamente en el pasado para el desarrollo de software, pero

actualmente sólo se utiliza en contadas ocasiones, especialmente cuando se

requiere la manipulación directa del hardware o se pretenden rendimientos

inusuales de los equipos.

Ensambladores

Un ensamblador crea código objeto traduciendo instrucciones

mnemónicas a códigos operativos, e interpretando los nombres simbólicos para

direcciones de memoria y otras entidades. El uso de referencias simbólicas es una

característica básica de los ensambladores, evitando tediosos cálculos y

direccionamiento manual después de cada modificación del programa. La mayoría

de los ensambladores también incluyen facilidades para crear macros, a fin de

generar series de instrucciones cortas que se ejecutan en tiempo real, en lugar de

utilizar subrutinas.

Los ensambladores son por lo general más fáciles de programar que los

compiladores de lenguajes de alto nivel, y han estado disponibles desde la década

de 1950. Los ensambladores modernos, especialmente para arquitecturas

basadas en RISC, como por ejemplo MIPS, SPARC y PA-RISC optimizan las

instrucciones para explotar al máximo la eficiencia de segmentación del CPU.

Los ensambladores de alto nivel ofrecen posibilidades de abstracción que

incluyen:

Control avanzado de estructuras. Procedimientos de alto nivel, declaración de

funciones. Tipos de datos que incluyen estructuras, registros, uniones, clases y

conjuntos. Sofisticado procesamiento de macros.

Un programa escrito en lenguaje Assembly consiste en una serie de

instrucciones que corresponden al flujo de órdenes ejecutables que pueden ser

cargadas en la memoria de una computadora. Por ejemplo, un procesador x86

puede ejecutar la siguiente instrucción binaria como se expresa en código

maquina:

Binario: 10110000 01100001 (Hexadecimal: 0xb061)

...

Descargar como (para miembros actualizados) txt (14 Kb)
Leer 7 páginas más »
Disponible sólo en Clubensayos.com