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

Lenguaje Ensamblador


Enviado por   •  9 de Abril de 2015  •  1.719 Palabras (7 Páginas)  •  174 Visitas

Página 1 de 7

Diagrama a bloques básico del mapa de direccionamiento de un micro-procesador X86.

Programa Utilización

Compilador

(Compiler)

(TASM)

Se encarga de transformar las instrucciones de lenguaje ensamblador (conocido como códi-go fuente y extensión asm) a código máquina (conocido como código objeto con extensión obj), ubicar los elementos o bloques de datos, código del programa y área de pila (stack) en segmentos correspondientes al modelo de memoria indicado en el código fuente.

Crea los símbolos y los identifica con los datos y/o direcciones según corresponda (es posible observarlo en un archivo de listado con extensión lst)).

Ligador

(Linker)

(TLINK) Substituye los símbolos generados por el compilador por librerías para así obtener el código final para que pueda ser ejecutado en la PC, ya sea como programa ejecutable, de coman-dos, librería u otro.

Las librerías constituyen un conjunto de programas previamente compilados que pueden ser requeridos por el programa para su ejecución. Un ejemplo son las funciones externas al pro-grama, macros, etc.

Cargador

(Loader) Su función consiste en ubicar o colocar (cargar) el código del programa, datos y área de pila (stack) en la memoria física (direccionable por el microprocesador) y disponible por el Siste-ma Operativo dentro de la PC.

Es el responsable de proporcionar las direcciones correctas a los registros segmentos del mi-croprocesador conforme al modelo de memoria indicado en el código fuente.

Recordar que una DIRECCIÓN EFECTIVA de memoria para un microprocesador 8088 y 8086 (20 líneas de direcciones) es representada utilizando la siguiente sintáxis:

Segmento : desplazamiento

Debido a que ambos registros son de 16 bits y es necesario calcular una dirección para 20 líneas de direc-ciones, es necesario representarlos en 20 bits. La dirección efectiva se calcula de la siguiente forma:

Dirección efectiva = (segmento)(10 h)+ desplazamiento

El efecto de multiplicar al dato contenido en el registro segmento por la constante 10h, da como resultado agregar a la derecha del dato contenido en el registro segmento un 0.

Por ejemplo, la dirección de un dato esta representado como A8C9 : F876.

El valor del registro de desplazamiento es: F876 h

El valor del registro de segmento es: A8C9 h

Valor de (segmento)(10h) es: A8C90 h

Dirección efectiva = (segmento)(10 h)+ desplazamiento

Dirección efectiva = (A8C9 h)(10 h)+ F876 h

Dirección efectiva = A8C90 h + F876 h

Dirección efectiva = B8506 h

La forma básica de utilizar a los registros segmentos con sus desplazamientos es la siguiente:

Segmento Desplazamiento Utilización

CS IP Dirección de instrucción

SS SP o BP Dirección de pila

DS D, BX o Dirección de 16 bits

SI Dirección de datos

Dirección de cadena fuente

ES DI Dirección de cadena destino

Otros microprocesadores más avanzados y con más líneas de direcciones utilizan ésta y otras técnicas para calcular una dirección efectiva.

En los primeros años de los circuitos integrados, los dispositivos fabricados eran utilizados para funciones especificas; a éstos circuitos se les conoce con el acrónimo de ASIC (Application Specific Integrated Circuit) y fuera esa función, no eran capaces de funcionar correctamente.

Un microprocesador es un dispositivo electrónico programable, es decir, su comportamiento depende de un conjunto de instrucciones (código de programa) que extrae de memoria y ejecuta secuencialmente hasta encontrar una salida o paro del programa, otorgándole una funcionabilidad mayor a la del ASIC.

Las instrucciones tienen como función manipular los elementos internos del microprocesador para generar ciertas condiciones útiles para un programa. Internamente el microprocesador divide esa instrucción en micro instrucciones con la finalidad de generar señales internas para obtener el resultado deseado, llevándose así cierta cantidad de ciclos de reloj para lograrlo. Los elementos internos del microprocesador X86 constituyen al denominado MODELO DE PROGRAMACIÓN, que no es otra cosa que los registros internos que lo inte-gran, el tamaño de éstos y la utilización que tiene cada uno.

Registro Utilización Registro Utilización Registro Utilización

AX Acumulador CS Segmento de código SP Apuntador de pila

BX Índice base DS Segmento de datos BP Apuntador base

CX Contador ES Segmento extra IP Apuntador de instrucción

DX Datos SS Segmento de pila Flags Banderas

Bandera Utilización

C Indica si ocurrió una condición de acarreo o préstamo.

P Indica si los datos tiene paridad par (1) o impar (0).

A Indica un acarreo auxiliar entre los bits 3 y 4 al realizar una operación aritmética

Z Indica que un dato es cero.

S Indica si un número es con signo o negativo (1) o no está activado o es positivo (0).

T Trampa o modo de depuración.

I Acepta las señales de interrupción externa IRQ si el bit es 1. En caso contrario no la acepta.

D Utilizado para el control de incremento (0) o decremento (1) para los registros índices.

O Desbordamiento

...

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