info lab n°2

13

Click here to load reader

Upload: erick-gabriel-chiroque-silopu

Post on 10-Aug-2015

11 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: info lab N°2

Facultad de Ingeniería Industrial

Especialidad Mecatrónica

CURSO :

MICROPOCESADORES Y MICROCONTROLADORES

TEMA :

INFORME DE LABORATORIO N°2

DOCENTE :

ING. LUIS ALBERTO CALDERON PINEDO

ALUMNO :

PARDO CALERO ALEX DANIEL

PUMA NAMUCHE ERNESTO DAVID

PIURA, SETIEMBRE 2011

Page 2: info lab N°2

INTRODUCCION

Siguiendo con el desarrollo de las prácticas de laboratorio, en esta oportunidad se estudio la Arquitectura del microprocesador 8088\8086 así como el reconocimiento y uso de los registros de uso general de este microprocesador.

En seguida se trabajo con la utilidad interactiva Debug, pero en esta ocasión se trabajo con los comandos:

Register, Unassembles, Assemble.

Page 3: info lab N°2

1) MARCO TEORICO

El Intel 8086 y el Intel 8088 son los primeros microprocesadores de 16 bits diseñados por Intel. Fueron el inicio y los primeros miembros de la arquitectura x86, actualmente usada en la mayoría de los computadores. La única diferencia entre ambos es el tamaño del bus de datos externo

El 8086 y el 8088 ejecutan el mismo conjunto de instrucciones. Internamente son idénticos, excepto que el 8086 tiene una cola de 6 bytes para instrucciones y el 8088 de solo 4. Exteriormente se diferencian en que el 8086 tiene un bus de datos de 16 bits y el del 8088 es de solo 8 bits, por ello, el 8086 era más rápido, mientras que el 8088 podía usar menos y más económicos circuitos lógicos de soporte, lo que permitía la fabricación de sistemas más económicos.

Intel trata esta igualdad interna y desigualdad externa dividiendo cada procesador 8086 y 8088 en dos sub-procesadores. O sea, cada uno consta de una unidad de ejecución (EU: Execution Unit) y una unidad interfaz del bus (BIU: Bus Interface Unit).

1.1) Registros

Los registros del procesador, se dedican a almacenar posiciones de memoria ya que el acceso a los registros es mucho más rápido que los accesos a memoria, y se emplean para controlar instrucciones en ejecución, manejar direccionamiento de memoria y proporcionar capacidad aritmética. Los registros son direccionables por medio de un nombre.

1.2) Registros de Propósito General

Los registros de propósito general AX, BX, CX, y DX son los caballos de fuerza del sistema. Son únicos en el sentido de que se les puede direccionar como una palabra o como un byte. Aparte de este uso general de los registros mencionados, existen instrucciones que utilizan solo uno, como se indica a continuación:

Registro AX: El registro AX es el registro acumulador, es utilizado para operaciones que implican entrada/salida y la mayor parte de la aritmética.

Registro BX: El registro BX es el registro base, y es el único registro de propósito general que puede ser un índice para direccionamiento indexado. También es común emplear el BX para cálculos.

Page 4: info lab N°2

Registro CX: El registro CX es conocido como el registro contador. Puede contener un valor para controlar el número de veces que un ciclo se repite o un valor para corrimiento de bits.

Registro DX: El registro DX es el registro de datos. En algunas operaciones se indica mediante este registro el número de puerto de entrada/salida, y en las operaciones de multiplicación y división de 16 bits se utiliza junto con el acumulador AX.

1.3) Registros Índice

Los registros SI y DI disponibles para direccionamiento indexado y para sumas y restas.

Registro SI: El registro índice fuente de 16 bits es requerido por algunas operaciones con cadenas de caracteres. El SI está asociado con el registro DS.

Registro DI: El registro índice destino también es requerido por algunas operaciones con cadenas de caracteres. El DI está asociado con el registro ES.

1.4) Registros Apuntadores

Los registros SP (apuntador de pila) y BP (apuntador base) están asociados con el registro SS y permiten al sistema acceder a datos en el segmento de la pila.

Registro SP: El apuntador de pila de 16 bits está asociado con el registro SS y proporciona un valor de desplazamiento que se refiere a la palabra actual que está siendo procesada en la pila. El sistema maneja de manera automática este registro.

Registro BP: El apuntador base de 16 bits facilita la referencia de parámetros, los cuales son datos y direcciones transmitidos vía la pila.

Page 5: info lab N°2

1.5) Registros de Banderas

Es un registro de 16 bits, de los cuales nueve sirven para indicar el estado actual de la máquina y el resultado del procesamiento. Muchas instrucciones aritméticas y de comparación cambian el estado de las banderas y apoyándose de ellas determinan la acción subsecuente. Veamos como se reparten y que bits son los que sirven para indicar el estado actual de la máquina tal y como hemos comentado anteriormente:

Debemos tener en cuenta que esta tabla contiene 16 posiciones (de 0 a 15), que son los 16 bits del registro de banderas y que por convenio los bits de un registro se ordenan de derecha a izquierda, es decir, la posición 0 la encontraremos a la derecha y la posición 15 a la izquierda.

- - - -OF

DF

IF

TF

SF

ZF

-AF

-PF

-CF

Los bits de las banderas son las siguientes:

OF (overflow, desbordamiento): Indica desbordamiento del bit de mayor orden después de una operación aritmética de números con signo (1=existe overflow; 0=no existe overflow). Para operaciones sin signo, no se toma en cuenta esta bandera.

DF (dirección): Controla la selección de incremento o decremento de los registros SI o DI en las operaciones con cadenas de caracteres (1=decremento automático; 0=incremento). La bandera DF se controla con las instrucciones STD y CLD.

IF (interrupción): Indica que una interrupción externa sea procesada o ignorada (1=habilita la interrupción; 0=deshabilita la interrupción). El estado de la bandera IF se controla con las instrucciones STI y CLI.

TF (trampa): Permite la operación del procesador en modo de depuración (paso a paso)

SF (signo): Contiene el signo resultante de una operación aritmética (0=positivo; 1=negativo).

ZF (cero): Indica el resultado de una operación aritmética o de comparación (0=resultado diferente de cero; 1=resultado igual a cero).

AF (acarreo auxiliar): Contiene un acarreo externo del bit 3 en un dato de 8 bits, para aritmética especializada. Esta bandera se prueba con las instrucciones DAA y DAS para ajustar el valor de AL después de una suma o resta BCD.

PF (paridad): Indica paridad par o impar en una operación de datos de ocho bits (0=paridad impar; 1=paridad par).

Page 6: info lab N°2

CF (acarreo): Contiene el acarreo del bit de mayor orden después de una operación aritmética; también almacena el contenido del último bit en una operación de desplazamiento o de rotación.

1.6) Registros de Segmento

Definen áreas de 64 Kb dentro del espacio de direcciones de 1 Mb del 8086. Estas áreas pueden solaparse total o parcialmente. No es posible acceder a una posición de memoria no definida por algún segmento: si es preciso, habrá de moverse alguno.

Registro CS: El DOS almacena la dirección inicial del segmento de código de un programa en el registro CS. Esta dirección de segmento, más un valor de desplazamiento en el registro apuntador de instrucción (IP), indica la dirección de una instrucción que es buscada para su ejecución. Para propósitos de programación normal, no se necesita referenciar el registro CS.

Registro DS: La dirección inicial de un segmento de datos de programa es almacenada en el registro DS. Esta dirección, más un valor de desplazamiento en una instrucción, genera una referencia a la localidad de un byte específico en el segmento de datos.

Registro SS: El registro SS permite la colocación en memoria de una pila, para almacenamiento temporal de direcciones y datos. El DOS almacena la dirección de inicio del segmento de pila de un programa en el registro SS. Esta dirección de segmento, más 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 propósitos de programación normal, no se necesita referenciar el registro SS.

Registro ES: Algunas operaciones con cadenas de caracteres utilizan el registro extra de segmento para manejar el direccionamiento de memoria. El registro ES está asociado con el registro DI (Índice). Un programa que requiere el uso del registro ES puede inicializarlo con una dirección de segmento apropiada.

Page 7: info lab N°2

1.7) Registro Apuntador de Instrucciones

El registro IP de 16 bits contiene el desplazamiento de dirección de la siguiente instrucción que se ejecuta. El IP está asociado con el registro CS en el sentido de que el IP indica la instrucción actual dentro del segmento de código que se está ejecutando actualmente en la memoria.

2) DESARROLLO DE la práctica de LABORATORIO

Abrimos la ventana de símbolos del sistema y desde ahí obtenemos la ventana de Debug para trabajar como se muestra en la figura 1.

Register (_r)Como ya se ha mencionado en el informe anterior al invocar este comando, nos muestra los diversos registros internos del procesador con su respectivo valor actual, por lo que si alguno mostrara un valor de 0000 esto significa que los registros están inicializados. Figura 2

Así como se pueden mostrar todos los registros, también se puede hacer que me muestre un solo registro digitando por ejemplo: _r BX Nos mostrara el registro BX y su contenido, además nos da la opción de cambiar el valor actual. Para comprobarlo cambiaremos el valor actual por 3666. Figura 3

Y para visualizar el cambio volveremos a digitar: (figura 4)_r

2.1) ejercicio

Page 8: info lab N°2

Asignar a los registros los siguientes valores:a) IP4FFA

Figura 5

b) AX2Como el valor asignado es de solo un digito, este se carga en la posición de digito menos significativos y el resto se completa con ceros. Figura 6

c) CX32AF3Cada registro abarca 16 bits, es decir un numero de 4 dígitos y como el valor asignado es mayor nos sale un mensaje de error. Figura 7

FIGURA 1

Page 9: info lab N°2

FIGURA 2

FIGURA 3

Page 10: info lab N°2

FIGURA 4

FIGURA 5

FIGURA 6

Page 11: info lab N°2

FIGURA 7