Вы находитесь на странице: 1из 28

INSTITUTO TECNOLGICO SUPERIOR

DE TEPEXI DE RODRGUEZ

ORGANISMO PBLICO DESCENTRALIZADO DEL GOBIERNO DEL ESTADO DE PUEBLA


ACADEMIA DE INGENIERA EN SISTEMAS COMPUTACIONALES

Nombre del Alumno

DIEGO JIMENEZ REYES

Carrera

INGENIERIA EN SISTEMAS COMPUTACIONALES

Docente

M.C. HERIBERTO RAMIREZ RODRIGUEZ

Materia

LENGUAJES DE INTERFAZ

Trabajo de investigacin

Unidad 1.- INTRODUCCION AL LENGUAJE ENSAMBLADOR

Fecha de entrega:

07 FEBRERO 2014

DIEGO JIMENEZ REYES

INSTITUTO TECNOLGICO SUPERIOR


DE TEPEXI DE RODRGUEZ

ORGANISMO PBLICO DESCENTRALIZADO DEL GOBIERNO DEL ESTADO DE PUEBLA


ACADEMIA DE INGENIERA EN SISTEMAS COMPUTACIONALES

INDICE

1 Introduccin al lenguaje ensamblador. ---------------------------------------------------- 3

1.1 Importancia de la programacin en lenguaje ensamblador.------------------------ 4

1.2 El procesador y sus registros internos --------------------------------------------------- 7

1.3 La memoria principal (RAM) --------------------------------------------------------------- 13

1.4 El concepto de interrupciones------------------------------------------------------------- 16

1.5 Llamadas a servicios del sistema ------------------------------------------------------- 18

1.6 Modos de direccionamiento --------------------------------------------------------------- 20

1.7 Proceso de ensamblado y ligado -------------------------------------------------------- 21

1.8 Modos de direccionaminto------------------------------------------------------------------25

DIEGO JIMENEZ REYES

INSTITUTO TECNOLGICO SUPERIOR


DE TEPEXI DE RODRGUEZ

ORGANISMO PBLICO DESCENTRALIZADO DEL GOBIERNO DEL ESTADO DE PUEBLA


ACADEMIA DE INGENIERA EN SISTEMAS COMPUTACIONALES

1.- INTRODUCCION AL LENGUAJE ENSAMBLADOR


Al desarrollarse las primeras computadoras electrnicas, se vio la necesidad de
programarlas, es decir, de almacenar en memoria la informacin sobre la tarea que iban a
ejecutar. Las primeras se usaban como calculadoras simples; se les indicaban los pasos
de clculo, uno por uno.
Lenguaje Ensamblador es la primera abstraccin del Lenguaje de Mquina, consistente
en asociar a los cdigos de operacin (OPCODES) palabras clave que faciliten su uso por
parte del programador.
Como se puede ver, el Lenguaje Ensamblador es directamente traducible al Lenguaje de
Mquina, y viceversa; simplemente, es una abstraccin que facilita su uso para los seres
humanos. Por otro lado, la computadora no entiende directamente el Lenguaje
Ensamblador; es necesario traducirle a Lenguaje de Mquina. Originalmente, este
proceso se haca a mano, usando para ello hojas donde se escriban tablas de programa
similares al ejemplo de la calculadora que vimos anteriormente. Pero, al ser tan directa la
traduccin, pronto aparecieron los programas
Ensambladores, que son traductores que convierten el cdigo fuente (en Lenguaje
Ensamblador) a cdigo objeto (es decir, a Lenguaje de Mquina). Una caracterstica que
hay que resaltar, es que al depender estos lenguajes del hardware, hay un distinto
Lenguaje de Mquina (y, por consiguiente, un distinto Lenguaje Ensamblador) para cada
CPU. Por ejemplo, podemos mencionar tres lenguajes completamente diferentes, que sin
embargo vienen de la aplicacin de los conceptos anteriores:

Lenguaje Ensamblador de la familia Intel 80x86.

Lenguaje Ensamblador de la familia Motorola 68000.

Lenguaje Ensamblador del procesador POWER, usado en las IBM RS/6000.

DIEGO JIMENEZ REYES

INSTITUTO TECNOLGICO SUPERIOR


DE TEPEXI DE RODRGUEZ

ORGANISMO PBLICO DESCENTRALIZADO DEL GOBIERNO DEL ESTADO DE PUEBLA


ACADEMIA DE INGENIERA EN SISTEMAS COMPUTACIONALES

1.1 IMPORTANCIA DE LA PROGRAMACIN EN LENGUAJE


ENSAMBLADOR.
Caractersticas

El cdigo escrito en lenguaje ensamblador posee una cierta dificultad de


ser entendido ya que su estructura se acerca al lenguaje mquina, es decir, es un
lenguaje de bajo nivel.

El lenguaje ensamblador es difcilmente portable, es decir, un cdigo escrito para


un microprocesador, puede necesitar ser modificado, para poder ser usado en otra
mquina distinta. Al cambiar a una mquina con arquitectura diferente,
generalmente es necesario reescribirlo completamente.

Los programas hechos por un programador experto en lenguaje ensamblador son


generalmente mucho ms rpidos y consumen menos recursos del sistema
(memoria RAM y ROM) que el programa equivalente compilado desde un lenguaje
de alto nivel. Al programar cuidadosamente en lenguaje ensamblador se pueden
crear programas que se ejecutan ms rpidamente y ocupan menos espacio que
con lenguajes de alto nivel.

Con el lenguaje ensamblador se tiene un control muy preciso de las tareas


realizadas por un microprocesador por lo que se pueden crear segmentos de
cdigo difciles y/o muy ineficientes de programar en un lenguaje de alto nivel, ya
que, entre otras cosas, en el lenguaje ensamblador se dispone de instrucciones
del CPU que generalmente no estn disponibles en los lenguajes de alto nivel.

Tambin se puede controlar el tiempo en que tarda una rutina en ejecutarse, e


impedir que se interrumpa durante su ejecucin.

Importancia del lenguaje ensamblador

DIEGO JIMENEZ REYES

INSTITUTO TECNOLGICO SUPERIOR


DE TEPEXI DE RODRGUEZ

ORGANISMO PBLICO DESCENTRALIZADO DEL GOBIERNO DEL ESTADO DE PUEBLA


ACADEMIA DE INGENIERA EN SISTEMAS COMPUTACIONALES

La

importancia

del

lenguaje ensamblador radica

principalmente

que

se

trabaja

directamente con el microprocesador; por lo cual se debe de conocer el funcionamiento


interno de este, tiene la ventaja de que en l se puede realizar cualquier tipo
de programas que en los lenguajes de alto nivel no lo pueden realizar. Otro punto sera
que los programas en ensamblador ocupan menos espacio en memoria.

Ventajas del Lenguaje Ensamblador

1. Como trabaja directamente con el microprocesador al ejecutar un programa, pues


como este lenguaje es el ms cercano a la mquina la computadora lo procesa
ms rpido.

2. Eficiencia de tamao.- Un programa en ensamblador no ocupa mucho espacio en


memoria porque no tiene que cargan libreras y dems como son los lenguajes de
alto nivel.

3. Flexibilidad.- Es flexible porque todo lo que puede hacerse con una mquina,
puede hacerse en el lenguaje ensamblador de esta mquina; los lenguajes de alto
nivel tienen en una u otra forma limitante para explotar al mximo los recursos de
la mquina. O sea que en lenguaje ensamblador se pueden hacer tareas
especficas que en un lenguaje de alto nivel no se pueden llevar acabo porque
tienen ciertas limitantes que no se lo permite.
DIEGO JIMENEZ REYES

INSTITUTO TECNOLGICO SUPERIOR


DE TEPEXI DE RODRGUEZ

ORGANISMO PBLICO DESCENTRALIZADO DEL GOBIERNO DEL ESTADO DE PUEBLA


ACADEMIA DE INGENIERA EN SISTEMAS COMPUTACIONALES

Desventajas del leguaje ensamblador

1. Tiempo de programacin.- Como es un lenguaje de bajo nivel requiere ms


instrucciones para realizar el mismo proceso, en comparacin con un lenguaje de
alto nivel. Por otro lado, requiere de ms cuidado por parte del programador, pues
es propenso a que los errores de lgica se reflejen ms fuertemente en la
ejecucin.
Programas fuente grandes.- Por las mismas razones que aumenta el tiempo,
crecen los programas fuentes; simplemente requerimos ms instrucciones
primitivas para describir procesos equivalentes. Esto es una desventaja porque
dificulta

el mantenimiento de

los

programas,

nuevamente

reduce

la productividad de los programadores.

2. Peligro de afectar recursos inesperadamente.- Que 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 es que la
mquina se bloquee o se reinicialice. Porque con este lenguaje es perfectamente
posible

(y

sencillo)

realizar

secuencias

de

instrucciones

invlidas,

que

normalmente no aparecen al usar un lenguaje de alto nivel.

3. Falta de portabilidad.- Porque para cada mquina existe un lenguaje ensamblador;


por ello, evidentemente no es una seleccin apropiada de lenguaje cuando
deseamos codificar

en una mquina y luego llevar

los programas a

otros sistemas operativos o modelos de computadoras.

DIEGO JIMENEZ REYES

INSTITUTO TECNOLGICO SUPERIOR


DE TEPEXI DE RODRGUEZ

ORGANISMO PBLICO DESCENTRALIZADO DEL GOBIERNO DEL ESTADO DE PUEBLA


ACADEMIA DE INGENIERA EN SISTEMAS COMPUTACIONALES

1.2 EL PROCESADOR Y SUS REGISTROS INTERNOS


Una de las primeras decisiones a la hora de disear un procesador es decidir cul ser su
juego de instrucciones. Este conjunto de instrucciones (rdenes) es el lenguaje que
realmente entiende el procesador, y constituye lo que se conoce como lenguaje
ensamblador o tambin lenguaje-mquina.

La decisin es trascendente, por dos razones. Primero: el juego de instrucciones decide el


diseo fsico del conjunto. Segundo: cualquier operacin que deba ejecutarse con el
procesador deber poder ser descrita en trminos de este "lenguaje" elemental.

DIEGO JIMENEZ REYES

INSTITUTO TECNOLGICO SUPERIOR


DE TEPEXI DE RODRGUEZ

ORGANISMO PBLICO DESCENTRALIZADO DEL GOBIERNO DEL ESTADO DE PUEBLA


ACADEMIA DE INGENIERA EN SISTEMAS COMPUTACIONALES

Uno de los mdulos principales que utiliza el lenguaje ensamblador para manejar el
procesador son los registros. Los registros se emplean para controlar instrucciones en
ejecucin, manejar direccionamiento de memoria y proporcionar capacidad aritmtica.
Estos cumplen la funcin de almacenamiento de los datos aunque de una manera ms
rpida

que

si

se

usase

la

memoria

RAM.

Los registros se pueden dividir en varias clases. Dependiendo de la arquitectura del


procesador podremos tener un nmero distinto de ellos. En los micros ms simples,
existan de forma bsica dos tipos de registros, unos de propsito general, donde se
llevaban a cabo todas las operaciones y otros que se encargan de trabajar con las
direcciones de memoria. Otra diferencia fundamental entre los tipos de registros es el tipo
de nmeros con los que son capaces de trabajar.

Los registros internos del procesador se pueden clasificar en 4 tipos diferentes:


Registros de segmento
Registros de propsito general
Registro de apuntadores
Registro de banderas

1.2.1 REGISTROS DE SEGMENTO


Se dispone de cuatro registros que sirven para contener las direcciones de otros tantos
segmentos (zonas de 64 KB de memoria). Utilizndolos en conjuncin con otros registros
que sealan las direcciones concretas dentro de estos segmentos (los desplazamientos),
permiten manejar la totalidad de la memoria direccional (el bus de direcciones es de 20
bits). Se subdivide en:
Registro CS (Code Segment): El DOS almacena la direccin inicial del segmento
de cdigo de un programa en el registro CS. Esta direccin de segmento, ms un
DIEGO JIMENEZ REYES

INSTITUTO TECNOLGICO SUPERIOR


DE TEPEXI DE RODRGUEZ

ORGANISMO PBLICO DESCENTRALIZADO DEL GOBIERNO DEL ESTADO DE PUEBLA


ACADEMIA DE INGENIERA EN SISTEMAS COMPUTACIONALES

valor de desplazamiento en el registro apuntador de instruccin (IP), indica la


direccin de una instruccin que es buscada para su ejecucin.
Registro DS (Data Segment): La direccin inicial de un segmento de datos de
programa es almacenada en el registro DS. En trminos sencillos, 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 (Stack segment): 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 pila (SP), indica la palabra actual en la pila que est siendo
direccionada.
Registros ES (Extra Segment): Alguna operaciones con cadenas de caracteres
(datos de caracteres) utilizan el registro extra de segmento para manejar el
direccionamiento de memoria. En este contexto, el registro ES est 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.

DIEGO JIMENEZ REYES

INSTITUTO TECNOLGICO SUPERIOR


DE TEPEXI DE RODRGUEZ

ORGANISMO PBLICO DESCENTRALIZADO DEL GOBIERNO DEL ESTADO DE PUEBLA


ACADEMIA DE INGENIERA EN SISTEMAS COMPUTACIONALES

1.2.2 REGISTROS DE PROPSITO GENERAL


Existen 4 registros denominados AX, BX, CX y DX que en realidad tienen asignados usos
caractersticos, aunque pueden ser utilizados a discrecin para cualquier cosa que
necesitemos. Los registros de propsito general AX, BX, CX y DX son los caballos de
batalla del sistema. Son nicos en el sentido de que se puede direccionarlos como una
palabra o como una 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". Por ejemplo, el registro CX consta de una
parte CH (alta) y una parte Cl (baja). Se componen en:
Registro AX (Acumulador). 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 eficiente si se refieren al AX
en lugar de a los otros registros.

DIEGO JIMENEZ REYES

10

INSTITUTO TECNOLGICO SUPERIOR


DE TEPEXI DE RODRGUEZ

ORGANISMO PBLICO DESCENTRALIZADO DEL GOBIERNO DEL ESTADO DE PUEBLA


ACADEMIA DE INGENIERA EN SISTEMAS COMPUTACIONALES

Registro BX (Base): El BX es conocido como el registro base ya que es el nico


registro de propsito general que puede ser ndice para direccionamiento
indexado. Tambin es comn emplear el BX para clculos.
Registro CX (Contador): Las instrucciones de bucle (LOOP) utilizan este registro
como contador.
Registro DX (Datos): El DX es conocido como el registro de datos. Algunas
operaciones de entrada/salida requieren uso, y las operaciones de multiplicacin y
divisin con cifras grandes suponen al DX y al AX trabajando juntos.

1.2.3 REGISTRO DE APUNTADOR


Son 5 registros destinados a contener direcciones; estas direcciones son desplazamientos
dentro de los segmentos indicados por los registros de segmento. Se compone por:

Puntero de instruccin IP (Instruccin pointer) y contador de programa PC


(Program counter): Indica el desplazamiento (dentro del segmento de
cdigo CS) de la prxima instruccin a ejecutar.
Puntero de pila SP (Stack Pointer): Seala el desplazamiento del final de la pila
dentro del segmento de pila SS. En caso necesario la pila puede crecer a
partir de este punto, de forma que por ejemplo, una nueva invocacin de
funcin crear un nuevo registro de activacin que comenzar en este punto.
por lo general, el programador no debe alterar su contenido.
Puntero base BP ("Base pointer"): Seala el desplazamiento (dentro del
segmento de pila SS) donde se encuentra el origen de la zona ocupada por las
variables dinmicas. El programador puede usarlo para su provecho.
Existen dos registros denominados "de ndice", en razn de su utilizacin muy
particular; el ndice fuente SI (Source index) y el ndice destino DI (Destination
index): Generalmente estos dos registros se utilizan con alguno de los registros
de uso general y con ciertas instrucciones especficamente pensadas para
DIEGO JIMENEZ REYES

11

INSTITUTO TECNOLGICO SUPERIOR


DE TEPEXI DE RODRGUEZ

ORGANISMO PBLICO DESCENTRALIZADO DEL GOBIERNO DEL ESTADO DE PUEBLA


ACADEMIA DE INGENIERA EN SISTEMAS COMPUTACIONALES

transferir datos (dentro de un rango de posiciones de memoria), desde un


punto inicial de un segmento de datos, a otro.

1.2.4 REGISTROS 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 mquina 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. En resumen, los bits de las banderas comunes son
como sigue:
OF (Overflow, desbordamiento): Indica desbordamiento de un bit de orden alto
(ms a la izquierda) 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 el DEBUG, activan esta bandera de manera que
usted pueda avanzar en la ejecucin de una sola instruccin a un tiempo, para
examinar el efecto de esa instruccin sobre los registros de memoria.
SF (signo): Contiene el signo resultante de una operacin aritmtica (0 = positivo y
1 = negativo).
ZF (cero): Indica el resultado de una operacin aritmtica o de comparacin (0 =
resultado diferente de cero y 1 = resultado igual a cero).

DIEGO JIMENEZ REYES

12

INSTITUTO TECNOLGICO SUPERIOR


DE TEPEXI DE RODRGUEZ

ORGANISMO PBLICO DESCENTRALIZADO DEL GOBIERNO DEL ESTADO DE PUEBLA


ACADEMIA DE INGENIERA EN SISTEMAS COMPUTACIONALES

AF (acarreo auxiliar): Contiene un acarreo externo del bit 3 en un dato de 8 bits


para aritmtica especializada.
PF (paridad): Indica paridad par o impar de una operacin en datos de 8 bits de
bajo orden (ms a la derecha).
CF (acarreo): Contiene el acarreo de orden ms alto (ms a la izquierda) despus
de una operacin aritmtica; tambin lleva el contenido del ltimo bit en una
operacin de corrimiento o de rotacin.

1.3 LA MEMORIA PRINCIPAL (RAM)


Para su funcionamiento el computador requiere de la memoria principal o RAM (Random
Access Memory), que es el espacio lgico a donde se almacenan las instrucciones o
datos que el microprocesador debe ejecutar o procesar. Esta memoria es temporal, pues
existe slo mientras el sistema est en encendido y su contenido vara de acuerdo a la
aplicacin o aplicaciones que se estn ejecutando. La memoria principal se divide en
Memoria Base o Convencional, Memoria alta y Memoria Extendida.
La memoria convencional o base ocupa los primeros 640K, es decir de 0 hasta 640K. Su
tamao siempre es el mismo independientemente de la cantidad de memoria fsica que
tenga el computador. En esta se localizan las direcciones E/S (Entrada/Salida) de todos
los dispositivos que se encuentren configurados en el sistema y se carga el sistema
operativo D.O.S.
La memoria alta reside entre 640K y los 1.024K. Los diseadores de la primera PC
decidieron reservar sta para los buffers de video, el BIOS-ROM del sistema y la memoria
DIEGO JIMENEZ REYES

13

INSTITUTO TECNOLGICO SUPERIOR


DE TEPEXI DE RODRGUEZ

ORGANISMO PBLICO DESCENTRALIZADO DEL GOBIERNO DEL ESTADO DE PUEBLA


ACADEMIA DE INGENIERA EN SISTEMAS COMPUTACIONALES

de los adaptadores. Aunque una parte de este espacio no se utiliza en las computadores
y para utilizarlo como memoria principal para datos y programas se requiere de un
administrador de memoria que recupera ese espacio perdido y convierte las reas no
usadas en regiones de memoria utilizable llamados bloque de memoria alta (UMB).
La memoria extendida comienza en 1MB (1.024K) y contina hasta el tope de la memoria
fsica presente en el sistema.
La memoria expandida est fuera del espacio normal de direcciones del microprocesador
y para poder tener acceso hay que usar un programa especial llamado administrador de
memoria

expandida

(EMM)

El EMM (Expanded Memory Manager) divide la memoria expandida en una serie de


unidades de 16K llamadas pginas. Tambin separa 64K de espacio de direcciones sin
usar en el rea de la memoria alta para que sirvan como un marco de pgina EMS
(Enhanced Memory Especification), un estndar de la industria promulgado a mediado de
los 80s por las compaas Lotus, Intel y Microsoft, tambin conocido como LIM.
Una pgina de EMS que est mapificada al marco de pgina, puede leerse y escribirse
como si fuera parte de la memoria instalada en la tarjeta del sistema.
Los administradores de memoria vienen en dos variedades. La ms comn es la del
modo virtual 86 del chip 80386 una propiedad de ste llamada paginacin para crear
UMBs. La paginacin es un mtodo por el cual el procesador puede engaar a un
programa para que ste crea que est teniendo acceso a una localizacin en memoria,
cuando en realidad est teniendo acceso a otra.
Los administradores de memoria en modo real, que estn diseados para que corran en
computadoras con microprocesadores 8086, 8088 y 80286 tienen otra estrategia para
crear EMS UMBs. Si hay memoria expandida EMS instalada, el administrador crear los
UMBs mapificando pginas de memoria EMS a las reas sin usar de la memoria alta. Si la
DIEGO JIMENEZ REYES

14

INSTITUTO TECNOLGICO SUPERIOR


DE TEPEXI DE RODRGUEZ

ORGANISMO PBLICO DESCENTRALIZADO DEL GOBIERNO DEL ESTADO DE PUEBLA


ACADEMIA DE INGENIERA EN SISTEMAS COMPUTACIONALES

PC no contiene memoria expandida pero se construy con uno de los juegos populares
de chips que apoyan la copia de ROM a RAM con remapificacin, el administrador de
memoria explotar esta habilidad para mapificar los bloques de memoria extendida a la
memoria superior.
Los administradores de memoria de modo virtual, ofrecen servicios que los otros no
pueden. Por ejemplo, la mayora de los administradores de memoria de modo virtual
dejan convertir la memoria extendida a memoria expandida EMS 4.0, y tambin transferir
cdigo de la ROM a la RAM, aumentando el rendimiento del sistema. Sin embargo la
ejecucin del programa en modo virtual 86 es ms lenta que en el modo real,
especialmente para programas con uso intenso de clculos que usan ciertas tcnicas de
emulacin para la aritmtica de punto flotante cuando no se tiene un coprocesador.
La memoria Expandida surgi como una solucin para poder ampliar la RAM en los
sistemas viejos tales como 8080, 8088, 286, etc. a los cuales no se les poda agregar ms
chips de memoria. La memoria expandida se colocaba insertando una tarjeta de
expansin. En los sistemas actuales no se requiere de esta tcnica sin embargo existen
manejadores que la emulan con el fin de que puedan correr aplicaciones diseadas para
este tipo de memoria.
De acuerdo a su presentacin fsica la memoria se puede clasificar en los siguientes tipos:

El tiempo de acceso es lo que demora en leerse alguna direccin de la memoria, por lo


tanto entre menor sea el valor, mayor es la velocidad de lectura. Una memoria rpida

DIEGO JIMENEZ REYES

15

INSTITUTO TECNOLGICO SUPERIOR


DE TEPEXI DE RODRGUEZ

ORGANISMO PBLICO DESCENTRALIZADO DEL GOBIERNO DEL ESTADO DE PUEBLA


ACADEMIA DE INGENIERA EN SISTEMAS COMPUTACIONALES

puede trabajar bien en un equipo lento pero un equipo rpido con una memoria lenta
puede presentar fallas. Anteriormente algunas marcas de computadoras requeran de
memoria con paridad es decir con un chip adicional para la correccin de errores, es por
ello que a muchos computadores de marca era muy difcil la ampliacin de la RAM.
En la actualidad se existen otras clasificaciones de la memoria tales como EDO
(Enhanced Data Output), BEDO (Burst EDO), ASDRAM (Asincronous Dinamic RAM) y
SDRAM (Sincronous Dinamic RAM) con el fin de obtener un mejor aprovechamiento de
las nuevas tecnologas en microprocesadores, tales como MMX y Pentium II.

1.4 EL CONCEPTO DE INTERRUPCIONES


Una interrupcin es una operacin del hardware que indica a la CPU que detenga la
ejecucin de lo que estaba haciendo, conserva la situacin del proceso y enva a la CPU
a una direccin determinada en la que tiene un programa de control de interrupcin o de
servicio de interrupciones.

Causas de interrupciones
Error de mquina detectado
Error de programa
Interrupcin externa (el operador pide una determinada funcin)
Interrupcin de entrada/salida (el dispositivo de E/S pide atencin o hace una
indicacin de que ha iniciado una operacin)
Llamada al supervisor por el programa

Necesidad de un sistema de interrupciones


DIEGO JIMENEZ REYES

16

INSTITUTO TECNOLGICO SUPERIOR


DE TEPEXI DE RODRGUEZ

ORGANISMO PBLICO DESCENTRALIZADO DEL GOBIERNO DEL ESTADO DE PUEBLA


ACADEMIA DE INGENIERA EN SISTEMAS COMPUTACIONALES

Surge de la sincronizacin entre CPU y los dispositivos. Dado que los componentes
mecnicos no cumplen con la exactitud de tiempos de ejecucin que se da en la CPU, y
puede averiguar:
Si el dispositivo est preparado
Si una operacin E/S se est ejecutando
Si una operacin ha terminado Cuando se trata de perifricos resulta eficiente la
modalidad de interrupcin para la atencin de estos => atiende al perifrico
cuando lo solicite y puede utilizar el resto de tiempo disponible en ejecutar otro
proceso (p.e. la atencin de otro perifrico)

TIPOS DE INTERRUPCIONES
1. Interrupcin por errores o por daos en la mquina.- fallo en la alimentacin elctrica;
error de paridad en memoria.
2. Interrupcin por causa del programa (o desvo).- instruccin o direccin incorrecta;
operaciones imposibles; desbordamiento de capacidad; divisin por cero, etc.; intentos
de ejecucin de instrucciones o de escritura en memoria no permitidos por el estado
de la mquina.
3. Interrupcin por entrada/salida.- generada por el canal para avisar fin de una
operacin E/S o de una falla ocurrida en el transcurso de E/S.
4. Interrupcin externa.- utilizada para avisar a la mquina acerca de cualquier
modificacin interesante del medio exterior, especialmente en control de procesos
industriales.

5. Interrupcin de recuento.- para contar impulsos procedentes de un reloj.


DIEGO JIMENEZ REYES

17

INSTITUTO TECNOLGICO SUPERIOR


DE TEPEXI DE RODRGUEZ

ORGANISMO PBLICO DESCENTRALIZADO DEL GOBIERNO DEL ESTADO DE PUEBLA


ACADEMIA DE INGENIERA EN SISTEMAS COMPUTACIONALES

Determinados procesadores presentan una sola posibilidad de interrupcin, en cuyo caso


se pasarn todas las causas de interrupcin a travs de un OR lgico y el programa de
interrupcin deber comenzar por comprobar un conjunto de indicadores, para detectar
cual puede ser la causa de la misma.

1.5 LLAMADAS A SERVICIOS DEL SISTEMA


Las llamadas son peticiones a ejecucin de rutinas y proporcionan a la interfaz entre en
sistema operativo y un programa en ejecucin. Estas llamadas son instrucciones de
lenguaje ensamblador y se representan en los manuales que emplean los programadores
de este lenguaje. Algunos de los sistemas permiten efectuar llamadas al sistema
directamente desde un programa realizado en el lenguaje de mayor nivel, normalmente
estas llamadas se asemejan a una funcin o sub-rutinas predefinidas, que generan una
llamada a una ruta en especial de tiempo de ejecucin, que realice efectivamente la
llamada al sistema, o bien puede generarla directamente en la lnea.
Los programadores de sistemas de aplicacin invocan con frecuencia los servicios del
sistema operativo desde sus programas mediante llamadas del sistema. Las rdenes del
sistema emitidas por los usuarios que manejan el lenguaje de rdenes (lenguaje de
control JCL), normalmente se convierten a lenguaje de mquina y se ejecutan como una
serie de llamadas al sistema.
Adems de proporcionar la mayora de la funcionalidad accesible a los usuarios del
lenguaje de rdenes, las llamadas del sistema usualmente permiten un control ms fino
sobre las operaciones de sistema y un acceso ms directo a las facilidades del hardware
DIEGO JIMENEZ REYES

18

INSTITUTO TECNOLGICO SUPERIOR


DE TEPEXI DE RODRGUEZ

ORGANISMO PBLICO DESCENTRALIZADO DEL GOBIERNO DEL ESTADO DE PUEBLA


ACADEMIA DE INGENIERA EN SISTEMAS COMPUTACIONALES

especialmente el sistema de E/S. pero para algunas operaciones de entrada en


comunicacin y funciones de gestin del sistema, las llamadas del sistema representan
usualmente un sper conjunto de las funciones accesibles a nivel de ordenadores.
Llamadas al sistema para ejecucin y el control de programa, usualmente incluyen un
conjunto completo de los servicios accesibles por la va de los lenguajes del rdenes,
tales como: run, execute, abort y planificacin relacionada con el tiempo, adems los
usuarios con llamadas del sistema pueden suspender, establecer o cambiar atributos del
tiempo de ejecucin de uno o ms programas. Tambin se proporcionan algunas
facilidades muy extendidas en sistemas de tiempo real, para comunicacin entre
programas y sincronizacin.
Las llamadas del sistema para el gestor de recursos, proporcionan servicios para la
asignacin, reserva y asignacin de los recursos del sistema. Las llamadas del sistema
pueden asignar o reservar otros tipos de objetos del sistema y despus destruir o devolver
su custodia al sistema operativo.
El siguiente diagrama ilustra la relacin entre el Shell y el Kernel. Recordemos que el
Shell es lo que el sistema operativo nos muestra, la portada, el intrprete de comandos,
etc. El kernel es el nico del sistema operativo.

DIEGO JIMENEZ REYES

19

INSTITUTO TECNOLGICO SUPERIOR


DE TEPEXI DE RODRGUEZ

ORGANISMO PBLICO DESCENTRALIZADO DEL GOBIERNO DEL ESTADO DE PUEBLA


ACADEMIA DE INGENIERA EN SISTEMAS COMPUTACIONALES

1.6 MODOS DE DIRECCIONAMIENTO


Modo de direccionamiento: mecanismo que permite conocer la ubicacin de un dato o
instruccin.
Objeto: dato o instruccin que se desea direccionar.
Un computador dispone de varios modos de direccionamiento.
Objetivos de los modos de direccionamiento:
Reducir el espacio ocupado en memoria por las instrucciones.
DIEGO JIMENEZ REYES

20

INSTITUTO TECNOLGICO SUPERIOR


DE TEPEXI DE RODRGUEZ

ORGANISMO PBLICO DESCENTRALIZADO DEL GOBIERNO DEL ESTADO DE PUEBLA


ACADEMIA DE INGENIERA EN SISTEMAS COMPUTACIONALES

Permitir la reubicacin del cdigo.


Facilitar el manejo de las estructuras de datos.
Modos de direccionamiento en las instrucciones
Los operandos y resultado de una instruccin son accedidos a travs de modos de
direccionamiento.
Cada campo de operando o resultado en una instruccin contiene informacin acerca del
modo de direccionamiento empleado para acceder a l.
Cdigo de operacin (CO) y modificador (MD)
Operandos (OPi) y resultado (RES)

1.7 PROCESO DE ENSAMBLADO Y LIGADO


Proceso de edicin, ensamblado, ligado de instrucciones en lenguaje ensamblador
EDICION
Los archivos fuente de cdigo ensamblador deben estar en formato ASCII standard. Para
esto puede usarse cualquier editor que permita crear archivos sin formato, e.g. Edlin, Edit,
Write, El editor del Turbo Pascal, Works, Word, WordStar, etctera. Las declaraciones
pueden ser introducidas en maysculas y/o minsculas. Una buena prctica de
DIEGO JIMENEZ REYES

21

INSTITUTO TECNOLGICO SUPERIOR


DE TEPEXI DE RODRGUEZ

ORGANISMO PBLICO DESCENTRALIZADO DEL GOBIERNO DEL ESTADO DE PUEBLA


ACADEMIA DE INGENIERA EN SISTEMAS COMPUTACIONALES

programacin es poner todas las palabras reservadas (directivas e instrucciones) en


maysculas y todo lo del usuario en minsculas para fines de facilidad de lectura del
cdigo.

Las sentencias pueden comenzar en cualquier columna, no pueden tener ms de 128


caracteres, no se permiten lneas mltiples ni cdigos de control, y cada lnea debe ser
terminada con una combinacin de line-feed y carriage-return. Los comentarios se
declaran con; y terminan al final de la lnea.

ENSAMBLADO
El ensamblado se lleva a cabo invocando al MASM. Este puede ser invocado, usando una
lnea de comando, de la siguiente manera:

MASM archivo [,[objeto][,[listado][,[cross]]]]][opciones][;]


Donde:

Objeto.- Es el nombre para el archivo objeto.

Listado.- Nombre del archivo de listado de ensamblado.

Cross.Es un archivo de referencias cruzadas.

LINK
De la misma forma que el ensamblado, la fase de liga se lleva a cabo con el LINK. Este
puede ser invocado de la misma forma que el MASM. Los parmetros que este requiere
son:

LINK objeto [,[ejecutable][,[mapa][,[librera]]]]][opciones][;]

DIEGO JIMENEZ REYES

22

INSTITUTO TECNOLGICO SUPERIOR


DE TEPEXI DE RODRGUEZ

ORGANISMO PBLICO DESCENTRALIZADO DEL GOBIERNO DEL ESTADO DE PUEBLA


ACADEMIA DE INGENIERA EN SISTEMAS COMPUTACIONALES

Dnde:

objeto.- Es el nombre para el archivo .OBJ

ejecutable.- Nombre del archivo .EXE

mapa.- Nombre del archivo mapa

librera.- Nombre del archivo biblioteca de rutinas

EJECUCION
Para la ejecucin del programa simplemente basta teclear su nombre en el prompt de MSDOS y teclear ENTER. Con esto el programa ser cargado en memoria y el sistema
proceder a ejecutarlo. El proceso completo para poder crear un programa ejecutable con
el Microsoft Macro Assembler.

1.8 TIPOS DE DIRECCIONAMIENTO

Los microprocesadores 8086 y 8088 se desarrollaron a partir de los microprocesadores


anteriores, el 8080 que era un microprocesador de 8 bits, esto significa que el 8080
realizaba todas sus operaciones con bloques de 8 bits.

DIEGO JIMENEZ REYES

23

INSTITUTO TECNOLGICO SUPERIOR


DE TEPEXI DE RODRGUEZ

ORGANISMO PBLICO DESCENTRALIZADO DEL GOBIERNO DEL ESTADO DE PUEBLA


ACADEMIA DE INGENIERA EN SISTEMAS COMPUTACIONALES

Los microprocesadores 8086 y 8088 poseen una arquitectura interna de 16 bits, pero por
temas de compatibilidad se les dio la capacidad de trabajar en modo de 16 bits o de 8
bits. EL bus de direcciones consta de 20 lneas por lo que es capaz de direccionar hasta
1Mbyte.
La familia de microprocesadores 8086 y 8088 dispone de diversos coprocesadores como
el 8089 de E/S, el 8087 coprocesador matemtico de coma flotante para hacer que el
sistema sea ms potente.
La diferencia primordial entre el 8086 y el 8088 es que en este ltimo el bus de datos es
de 8 bits mientras que en el 8086 es de 16 bits. Tanto el 8086 como el 8088 disponen de
un juego de 92 instrucciones y 7 modos de direccionamiento. Entre esos 92 tipos de
instrucciones, las ms rpidas se ejecutan en 2 ciclos tericos de reloj (9 reales) y las ms
lentas en 206. La frecuencia tpica de reloj es de 4.77 MHz en el 8086, 8 MHz en el 80862 y 10 MHz en el 8086-1.

OTROS MICROPROCESADORES DE LA FAMILIA 8086 DE INTEL


80186/80188- Son versiones avanzadas del 8086/8088
8086-2/8088-2- Mayores velocidades
80286
80386/80486
Pentium I, II, III y IV.

DIEGO JIMENEZ REYES

24

INSTITUTO TECNOLGICO SUPERIOR


DE TEPEXI DE RODRGUEZ

ORGANISMO PBLICO DESCENTRALIZADO DEL GOBIERNO DEL ESTADO DE PUEBLA


ACADEMIA DE INGENIERA EN SISTEMAS COMPUTACIONALES

1.8 MODOS DE DIRECCIONAMIENTO


MODO PROTEGIDO
Desde el punto de vista de un programador, la diferencia entre el modo protegido y el
modo real est en el espacio de direccionamiento inmensamente ampliado y los
mecanismos de direccionamiento distinto.

Modo protegido del 80286


El procesador 80286 permite dos modos de funcionamiento: el modo real de
direccionamiento y el modo protegido. Trabajando en el modo real 8086, el procesador
80286 puede utilizar hasta 1 MB de espacio direccionable, memoria fsica, al emplear una
direccin de 20 bits. En modo protegido, los programas que corren con el 80286 pueden
utilizar incluso hasta 1 GB de espacio direccionable. Este es asignado al espacio
direccionable de 16 MB por el 80286, al emplear una direccin fsica de 24 bits desde el
punto de vista del hardware, ambos modos se diferencian solo en las cuatro lneas
superiores de direccin (A23 hasta A20). Estas son, en modo real, simplemente ignoradas
o, en modo protegido, decodificadas junto a las otras lneas de direccin.
Como se apunt anteriormente, el procesador 80286puede direccionar una memoria fsica
de hasta 1 MB en modo real y en modo protegido hasta 16 MB. Aparte de los diferentes
tamaos de memoria, la organizacin de la memoria y de las E/S es en el modo real y el
modo protegido, idntica.
Adicionalmente a las posibilidades de direccionamiento de memoria vistos, 80286 puede
direccionar directamente 65536 puertos de E/S de 8 bites o hasta 32768 puertos de E/S
de 16 bits que estn asignados en una zona direccionable de E/S separada.

DIEGO JIMENEZ REYES

25

INSTITUTO TECNOLGICO SUPERIOR


DE TEPEXI DE RODRGUEZ

ORGANISMO PBLICO DESCENTRALIZADO DEL GOBIERNO DEL ESTADO DE PUEBLA


ACADEMIA DE INGENIERA EN SISTEMAS COMPUTACIONALES

El programador ve el espacio direccionable de memoria del 80286 como una secuencia


continua de bytes (8bits), en donde cada byte contiene un dato de 8 bits y 2 bytes
seguidos de un dato de 16 bits (palabra). Las informaciones byte o palabra pueden ser
asignadas a direcciones pares o impares. No existe ninguna limitacin para lmites de
palabras.

Modo protegido del 80386/80486


Cuando se realiza un reset el 80386/80486 arranca el modo real. Como se coment
anteriormente, el hacer trabajar a estos procesadores en modo real, es conveniente en
aplicaciones que exigen un <rpido> 8086. La mayora de los programas de aplicacin,
sin embargo, pueden correr de una manera ms eficaz, cuando todos los recursos del
procesador pueden ser agotados. Para ello el procesador debe ser llevado del modo real
al modo protegido. El modo protegido permite el uso de instrucciones adicionales que
optimizan especialmente los sistemas operativos multitarea, as como una paginacin y
segmentacin de la memoria
Como en el modo real, tambin en el modo protegido del 80386 se usan dos
componentes para formar la direccin lgica: se utilizan un selector de 16 bits, para
determinar la direccin de base lineal con un segmento. La direccin base, a su vez, es
sumada a la direccin efectiva de 32 bits y forma una direccin lineal de 32 lineal de 32
bits.
La direccin lineal de 32 bits puede ser utilizada como direccin fsica de 24 bits o, en
caso de ser posible/permitido el acceso a pginas, el mecanismo de paginacin convierte
la direccin de 32 bits en una direccin fsica de 24 bits. La diferencia de ambos modos
est en el clculo de la direccin base.

DIEGO JIMENEZ REYES

26

INSTITUTO TECNOLGICO SUPERIOR


DE TEPEXI DE RODRGUEZ

ORGANISMO PBLICO DESCENTRALIZADO DEL GOBIERNO DEL ESTADO DE PUEBLA


ACADEMIA DE INGENIERA EN SISTEMAS COMPUTACIONALES

El modo protegido amplia el espacio direccionable lineal hasta 4 GB (

) y permite la

ejecucin de programas de memoria virtual con tamaos casi limitados (64 TB (

).

Adicionalmente, el modo protegido permite a los microprocesadores 80386 y 80486 la


ejecucin de cualquier software, que fuera escrito para las CPU 80386 DX, 80286 y 8086.
Sin embargo, por ejemplo al utilizar el software de una CPU 80386 DX, solo son utilizados
16 MB de la memoria fsica.

MODO PROTEGIDO DEL PROCESADOR PENTIUM


Cuando se realiza un reset, el procesador Pentium tambin arranca en modo real.
Adicionalmente a las propiedades citadas, que pueden ser utilizadas en los procesadores
80386 y 80486 en modo protegido, las posibilidades del procesador Pentium en modo
protegido fueron ampliadas con los nuevos sealizadores VIP y VIF en el registro EFLAG.
VIP (Virtual Interrupt Pending Flag) sealizador de interrupciones pendientes
virtual
VIF (Virtual Interrupt Flag) .- sealizador de interrupciones virtual
Estos permiten que los programas de aplicaciones en un entorno de multitarea tengan
acceso a una variante virtual del IF (Interrupt Flag). Con ello se evita en ciertas
operaciones, la ejecucin paso a paso a un monitor del modo virtual 8086 o de menos
protegido

La inicializacin del modo protegido


La inicializacin es una secuencia de diferentes instrucciones al sistema operativo, antes
que la primera tarea sea ejecutada, es decir, el cdigo de inicializacin del sistema

DIEGO JIMENEZ REYES

27

INSTITUTO TECNOLGICO SUPERIOR


DE TEPEXI DE RODRGUEZ

ORGANISMO PBLICO DESCENTRALIZADO DEL GOBIERNO DEL ESTADO DE PUEBLA


ACADEMIA DE INGENIERA EN SISTEMAS COMPUTACIONALES

operativo debe ser modificado adecuadamente. La inicializacin genera estructuras de


datos del sistema del sistema operativo y es independiente del 80386. Los siguientes
procedimientos deben ser ejecutados para llegar al modo protegido:
Apertura del modo protegido
Apertura de las paginas (a eleccin)
Conmutacin a las tareas originales
La mayora de los sistemas operativos deben transferir casi simultneamente los
controles a un segmento de 32 bits para adaptar los operandos estndar (por defecto) y
el tamao de direccin a 32 bits. Generalmente un sistema operativo cambia
automticamente del modo real al modo protegido y de un segmento de 16 bits a uno de
32 bits despus de realizar un RESET.

Un RESET pone las lneas de direccin A31 hasta A20 en estado high para que, de
acuerdo a ello, puedan ser llamados deferentes cdigos. Estas lneas de direccin
permanecen en estado high hasta que se produzca un salto de segmento o una peticin
equivalente. A31 hasta A20 permanecen en estado low mientras el procesador esta en
modo protegido.

DIEGO JIMENEZ REYES

28

Вам также может понравиться