Hardware-PC-XT-8088-8086
Short Description
Descripción: Hardware-PC-XT-8088-8086...
Description
UNIVERSIDAD NACIONAL DE SAN AGUSTIN DE AREQUIPA FACULTAD DE INGENIERÍA DE PRODUCCIÓN Y SERVICIOS ESCUELA PROFESIONAL DE INGENIERIA ELECTRÓNICA
CURSO: ARQUITECTURA DE COMPUTADORAS (LABORATORIO) TURNO: VIERNES 7:00 a 9:00 am TÍTULO:
Ensamblador 8088/8086, direccionamiento y programación, juego de instrucciones manual INTEL PRÁCTICA NRO: 3 INTEGRANTES:
CUI:
QUICAÑA GARAY, ROUSVER RUBÉN
20042943
RAMÍREZ LLERENA, NILTON RUDY
20050375
ZAVALA RIVEROS, VLADIMIR IVÁN
20022334
FIRMA:
DOCENTE: ING. ERASMO SULLA FECHA: Viernes 15 de Mayo del 2015 AREQUIPA – PERÚ
HARDWARE COMPUTADORA PERSONAL
Hardware PC XT 8088-8086 Arquitectura de Computadoras
PC XT 8088-8086 ÍNDICE 1. SISTEMAS QUE COMPONEN LA COMPUTADORA XT………………………………….………. 2 2. CARACTERÍSTICAS DEL PROCESADOR 8088/8086……………………………………...………. 3 3. FUNCIONAMIENTO EN GENERAL…………………………………………………..………….………. 6 4. SISTEMA DESCRITO POR BLOQUES Y POR CIRCUITOS……………………………………………………………………… ….……………….…. 8 5. ESQUEMÁTICO DEL SISTEMA COMPLETO SISTEMA DE APLICACIÓN……………….… 12 6. MUESTRA DE UNA MAINBOARD XT CON IDENTIFICACIÓN DE DISPOSITIVOS, ETIQUETADO Y ACCESORIOS…………………………………………....…….. 13 7. REGISTROS DEL 8088……………………………………………………………………………… …….… 14 8. MODOS DE DIRECCIONAMIENTO………………………………………………………… …..…….. 17 9. SET DE INSTRUCCIONES DEL 8088……………………………………………………………………. 21 10. LENGUAJE MÁQUINA, MACROENSAMBLADOR DEL 8088…………………………………. 26 11. DEBUGER Y SIMULADORES DEL 8088………………………………………………………………. 33 12. BIBLIOGRAFÍA……………………………………………………………… ………………………………… 34
1
Hardware PC XT 8088-8086 Arquitectura de Computadoras
HARDWARE COMPUTADORA PERSONAL PC XT 8088-8086 1. SISTEMAS QUE COMPONEN LA COMPUTADORA XT: En el año de 1981, hizo su aparición el IBM Personal Computer, conocido comúnmente como “IBM PC” (en español Computadora u Ordenador Personal IBM), como un paso de la multinacional estadounidense IBM por incorporarse al campo de los microcomputadores personales.
Sin embargo, en 1983, tres años después del lanzamiento del IBM PC original, la compañía introduce el modelo “PC XT” (Personal Computer with eXtended Technology). En donde lo más relevante fue la incorporación de un Disco Duro, 8 slots de expansión, una fuente de poder de mayor potencia y ya no contaba con la interfaz para casetes. A diferencia del modelo “PC AT” (Advanced Technology) lanzado un año después, el PC XT poseía concretamente un microprocesador Intel 8088, 16 k de RAM, ampliable a 256 k, una unidad de diskettes, un monitor de pantalla verde monocromática, un teclado y además estaba equipado con el MS-DOS rebautizado como PC-DOS. Estaba basado esencialmente en la misma arquitectura que el PC original. Su precio inicial fue de $3.285.
2
Hardware PC XT 8088-8086 Arquitectura de Computadoras En primer lugar, la computadora personal PC XT tenía como corazón al microprocesador 8088 de Intel, lo cual vendría a ser la unidad central de proceso o CPU. El 8088 era en sí una versión simplificada de su antecesor, el 8086 que contaba con registros y bus de datos de 16 bits. El 8088 contaba con registros de 16 bits, con un bus de datos de 8 bits y de direcciones de 20 bits. La ventaja se encontraba en que el bus de 8 bits coincidía con el bus de datos de la placa base. Sin embargo se requería la ayuda de un Coprocesador Intel 8087 para operaciones aritméticas de coma flotante. La computadora contaba con una “disquetera” o unidad de disquetes (“floppy disk” o disco flexible) de tamaño 5 ¼ de pulgada, de doble cara y con una capacidad de 360KB (Kilobytes). Lo que hacía destacar a esta computadora de su predecesor, el IBM PC Original, en cuanto a almacenamiento, era el uso de un Disco Duro de Seagate Technology ST412 de unos 10 MB (Megabytes) de capacidad. Más tarde las unidades de disquetes vendrían instaladas de fábrica pero de media altura, sin embargo en el 85, algunas unidades salieron de fábrica con dos disqueteras de tamaño completo en vez de una y sin contar con el disco duro convirtiéndose el montaje en una opción de bajo coste. Las unidades de diskette eran de la marca Tandon y el controlador de las unidades de diskette era un NEC µPD765. La PC XT contaba además con una serie de 128 KB de memoria RAM en la tarjeta madre que posteriormente pasarían a ser 256 KB debido a propósitos de estandarización. La placa base daba lugar a 8 ranuras o slots de expansión del tipo ISA de 8 bits. Se llegaron a tener hasta 2 versiones de la placa base del XT, donde la original podía admitir hasta 256 KB en la misma placa (4 bancos de chips de 64KB), capacidad que llegaría hasta los 640 KB con las tarjetas de expansión. La segunda versión vendría hasta el año 1986 en que se podía admitir hasta 640KB enteros en la placa madre gracias a dos bancos de chips de 256KB y los dos de 64KB. Algo que se incluyó en esta segunda versión fue el empleo de un IBM ROM BIOS, IBM BIOS o ROM BIOS que incluía soporte para el teclado expandido. El PC XT también albergaba una memoria ROM específica como intérprete de BASIC (lenguajes de programación de alto nivel), lo cual en el IBM PC Original era una operación realizada por una unidad de casete, que no se encontraba más en el XT. Para acceder a esta función de intérprete se requería de realizar operaciones auxiliares como desconectar el disco duro, dejar vacía la disquetera, y otras como acceder manualmente a la BIOS con un “depurador”. La placa madre también contaba con chips de soporte. Así se tenían: un oscilador o generador de señales de reloj 8284A, un controlador de interrupciones 8259A, un controlador de bus 8288, un controlador DMA 8237ª (DMA o Acceso Directo a Memoria), un timer 8253, una interfaz programable de periféricos 8255A, todos de Intel, más lógica discreta adicional implementada con circuitos TTL usados como lógica de pegamento. Otro componente del PC XT era el teclado, el cual al igual que en el caso de su predecesor, el PC Original no era compatible con aquellos de los
3
Hardware PC XT 8088-8086 Arquitectura de Computadoras equipos más modernos (el AT o superior). Una dificultad al respecto era el uso de diferentes códigos de escaneo, además de la interfaz eléctrica algo diferente de los teclados PC/AT (Uso de adaptadores de señal). El teclado tenía incorporado un procesador 8048 de Intel. La tarjeta o placa madre cuenta con un par de conectores de 16 pines provenientes de la fuente DC (de unos 130W) y de las señales entrantes. Sin embargo también se cuentan con otros conectores para el teclado y el Speaker. La fuente de alimentación generaba hasta 4 voltajes (+5V, -5V, +12V y -12V) y se encontraba dentro del chasis o case, junto con la placa madre, las unidades de disco y las tarjetas de expansión. No podemos olvidar los 8 slots o sockets de 16 pines para las tarjetas que irán montadas en la placa. Estos slots o ranuras de expansión alojaban a todo tipo de circuitos con diversas finalidades: Ampliación de Memoria, el controlador de las unidades de disco, el controlador de video, tanto para la tarjeta monocromática (MDA), como para la tarjeta gráfica de color (CGA), el cual era el 6845 de Motorola. No podemos dejar de lado los canales: Serie RS-232 como para periféricos como el ratón, y el Paralelo para las Impresoras.
2. CARACTERÍSTICAS DEL PROCESADOR 8088/8086: El microprocesador 8088 es una derivación del 8086; la diferencia es el ancho del bus de datos. El 8086 tiene tanto el bus interno como externo de datos de 16 bits, mientras que el 8088 tiene una ruta de datos interna de 16 bits pero la interface a memoria de solo 8 bits. El código escrito para uno se ejecutará en el otro sin cambios. La diferencia en el ancho del bus no hace que el 8086 sea el doble de rápido que el 8088. El 8088 ejecuta sus instrucciones desde una cola interna la cual se llena tan pronto como hay una localidad vacía; así, es posible que se traslapen los ciclos de ejecución y búsqueda. Con tal de que las instrucciones se ejecuten de la cola interna y no tengan que esperar un ciclo del bus, su ejecución es tan rápida como pudiera ser en el 8086. Si los ciclos de datos son para 16 bits, tomaran dos ciclos de memoria; mientras que en el 8086 sólo tomará uno. El siguiente es un resumen de los puntos de interés del 8088:
Arquitectura interna de 16 bits Soporta 1 MB de memoria Aritmética con signo y sin signo de 8 y 16 bits, tanto en binario como en decimal, incluyendo multiplicación y división. 14 registros de 16 bits. Interrupción enmascarable y no enmascarable. 24 modos de direccionamiento de operandos. Acceso directo a memoria Soporte para coprocesadores de bus local. Soporte para E/S mapeada en memoria. Operaciones de cadena. 4
Hardware PC XT 8088-8086 Arquitectura de Computadoras
Una manera de aprender acerca del 8088 es conocer las funciones de sus pines. La figura que se mostrará a continuación, muestra un diagrama funcional a bloques (Functional Block Diagram) y un diagrama de la definición de las patitas (Pin Diagram) del 8088:
AD0 – AD7: Las señales de estas patas transmiten información de direcciones de memoria y E/S en cada ciclo del bus. Estas señales están multiplexadas; llevan los bits A0 – A7 de dirección al principio del ciclo del bus, después se usan como el bus de datos del procesador. En la PC, esta información de dirección se asegura (latched) y se convierte en la dirección del bus del sistema. A8 – A15: Estas líneas son la salida de los bits A8 – A15 de dirección para memoria y E/S en cada ciclo del bus. No están multiplexadas y permanecen estables durante el ciclo del bus. En la PC, esta información de dirección se asegura (latched) y se convierte en los bits A8 – A15 de dirección del bus del sistema. A16/S3 – A19/S6: Al inicio de cada ciclo del bus para memoria, estas señales llevan los bits A16 – A19 de dirección de memoria. Durante el resto del ciclo, presentan el estado interno del 8088. Cuando S6 es bajo, S5 da el estado de habilitación de la bandera de interrupción, y S4 y S3 se codifican para decir cual registro de segmento se está usando. En la PC no se usa esta información de estado. Estas líneas se aseguran y se convierten en los bits A16 – A19 de dirección del bus del sistema. CLK: Esta línea proporciona la información de temporización para el 8088. En la PC, esta línea viene del reloj 8284.
5
Hardware PC XT 8088-8086 Arquitectura de Computadoras RQ/GT0: Es una señal bidireccional usada por otros maestros de bus local para solicitar el uso del bus local. En la PC, esta línea se conecta a un enchufe de procesador auxiliar, compatible con el coprocesador numérico 8087. RQ/GT1: Realiza la misma función que RQ/GT0, pero tiene un nivel de prioridad más bajo. En la PC no se usa. LOCK: Se activa por una instrucción de seguro (lock) y permanece activa hasta el final de la siguiente instrucción. Se usa para indicar a otros maestros de bus que no deben intentar ganar el control del bus. Debido a que el diseño de la PC no es de bus multimaestro, esta línea no se usa. NMI: Esta línea de entrada genera una interrupción no enmascarable (nonmaskable). En la PC esta entrada de petición de interrupción se usa para reportar errores de paridad en la memoria de la tarjeta madre, acepta peticiones de interrupción del enchufe del procesador auxiliar, y acepta peticiones de dispositivos sobre el bus del sistema. INTR: Esta señal de entrada es la de interrupción mascarable. En la PC, se conecta al controlador de interrupciones 8259A, el cual expande la entrada a 8 entradas de interrupción al sistema. READY: Esta línea de entrada se usa para insertar estados de espera en los ciclos del bus del 8088 y, así, extender la longitud del ciclo. En la PC, esta línea viene del reloj 8284A, el cual lo sincroniza con el reloj del sistema. La PC usa la función READY para insertar un estado de espera en todos los accesos de puerto de E/S y DMA, y proporciona una función de generación de estados de espera en el bus del sistema. RESET: Se usa para detener al microprocesador. En la PC, esta señal viene del reloj 8284A, el cual recibe su entrada de la fuente de energía del sistema. La fuente del sistema genera una señal llamada energía buena, la cual indica que los niveles de energía están en niveles adecuados y el RESET se puede remover del 8088. QS0 y QS1: Estas líneas de salida dan el estado de la cola de instrucción interna. En la PC, estas líneas están alambradas con el enchufe del procesador auxiliar de tal manera que puede seguir el estado de la cola del 8088. TEST: Este pin de entrada se prueba por la instrucción espera de prueba. Si está en bajo, la ejecución continua; si está en alto, el 8088 espera en un estado de ocioso hasta que la pata va a bajo. En la PC, se alambra con la salida BUSY del 8087. S0, S1 y S2: Estas salidas presentan información del estado que pertenece al tipo de ciclo de bus que será ejecutado. En la PC, estos bits se alambran al controlador de bus 8288, donde se decodifican. Las salidas decodificadas del 8088 se convierten en las líneas de control del bus del sistema.
6
Hardware PC XT 8088-8086 Arquitectura de Computadoras El procesador opera a 4.77 MHz, frecuencia que es derivada del cristal de 14.31818 MHz la cual es dividida por tres por el reloj del procesador; y por cuatro se obtiene 3.58 MHz (la señal requerida para los televisores de color). El procesador es respaldado por el set de funciones provistas por cuatro canales de 20 bits de acceso directo a memoria o DMA, tres grupos de canales del Timer de 16 bits y ocho niveles de interrupciones. Tres de los cuatro canales de DMA están disponibles en el bus de Entrada/Salida y hay una alta velocidad para transferencia de datos entre las memorias y los canales de Entrada/Salida sin intervención de la memoria del procesador. El cuarto canal es programado para refrescar el sistema dinámico de memoria, esto está hecho para el programa del Timer-contador e informe periódicamente de la transferencia DMA.
3. FUNCIONAMIENTO EN GENERAL: La función básica de una computadora es ejecutar programas, los cuales están compuesto de un conjunto de instrucciones almacenadas en memoria. La CPU es la encargada de ejecutar las instrucciones específicas del programa. Para comprender esta función debe considerarse el detalle del proceso de ejecución del programa. Desde el punto de vista más simple, se considera el procesamiento de una instrucción en dos etapas: la CPU lee (busca, trae; “fetch” en inglés) la instrucción de memoria y la ejecuta. La ejecución del programa consiste en la repetición del proceso de traer y ejecutar la instrucción. Buscar una instrucciones, de memoria. operaciones y
instrucción es una operación común a todas las y consiste en la lectura de la instrucción de una localidad La ejecución de la instrucción puede suponer varias depende de la naturaleza de la instrucción.
El procesamiento de una instrucción se denomina ciclo de instrucción y se representa en la figura siguiente. Los dos pasos se denotan como ciclo de búsqueda y ciclo de ejecución. La ejecución del programa se detiene sólo si la computadora se desconecta, se produce algún error o se encuentra una instrucción que detiene la computadora.
7
Hardware PC XT 8088-8086 Arquitectura de Computadoras
Al principio de cada ciclo de instrucción, la CPU busca o trae una instrucción de memoria. En una CPU típica, se utiliza un registro llamado contador de programa (PC program counter) para apuntar a la instrucción que debe traerse a continuación. A no ser que se indique otra cosa, la CPU siempre incrementa el PC después de traer una instrucción para determinar de dónde traer la siguiente instrucción de la secuencia (siguiente dirección de memoria). La instrucción traída se almacena en un registro de la CPU conocido como registro de instrucción (IR instruction register). La CPU interpreta la instrucción y realiza la acción requerida. En general, ésta puede ser de cuatro tipos: -
CPU - Memoria: Deben transferirse datos desde la CPU a la memoria o viceversa. CPU - E/S: Deben transferirse datos a o desde el exterior mediante el módulo de E/S. Procesamiento de datos: La CPU realizará alguna operación aritmética o lógica con los datos. Control: Una instrucción puede especificar que la secuencia de ejecución se altere por lo que la CPU debe poner el contador de programa al valor adecuado.
El ciclo de ejecución de una instrucción puede ocasionar más de una referencia a memoria, o en su lugar, puede especificar una operación de E/S. Con estas consideraciones en mente, la figura 5 proporciona una visión más detallada el ciclo de instrucción. Para un ciclo de instrucción dado, algunos estados pueden no darse y otros pueden visitarse más de una vez. Los estados se describen a continuación:
8
Hardware PC XT 8088-8086 Arquitectura de Computadoras Cálculo de la dirección de instrucción (iac, instruction address calculation): Determina la dirección de la siguiente instrucción a ejecutar. Búsqueda de instrucción (if, instruction fetch): La CPU lee la instrucción desde su posición de memoria. Decodificación de la operación indicada en la instrucción (iod, instruction operation decoding): Analiza la instrucción para determinar el tipo de operación a realizar y el (los) operando(s) a utilizar. Cálculo de la dirección del operando (oac, operand address calculation): Si la instrucción implica una referencia a un operando en memoria o disponible mediante E/S, determina la dirección del operando. Búsqueda de operando (of, operand fetch): Trae el operando desde la memoria o se lee desde el dispositivo de E/S. Operación con los datos (do, data operation): realiza la operación indicada en la instrucción. Almacenamiento de operando (os, operand store): Escribe el resultado en memoria o lo saca a través de un dispositivo de E/S.
Los estados de la parte superior de la figura ocasionan intercambio entre la CPU y la memoria o módulo E/S. Los estados inferiores sólo ocasionan operaciones internas en la CPU. El estado oac aparece dos veces, porque una instrucción puede ocasionar una lectura, una escritura o ambas. Obsérvese además la posibilidad de múltiples operandos y resultados puesto que se necesitan en algunas instrucciones.
4. SISTEMA DESCRITO CIRCUITOS:
POR
BLOQUES
Y
POR
La PC XT estaba esencialmente basada en la misma arquitectura de la IBM PC Original. La IBM PC original fue un sistema basado en disquete con una memoria de 32K y cinco ranuras o slots de expansión. La IBM PC soportaba uno o dos disquetes, cada uno con capacidad de 160KB y se le podían agregar externamente dos manejadores de disco flexible. La PC original usó el microprocesador 8088 de Intel corriendo a 4.77 MHz. A continuación se muestra la PC original descrita por bloques:
9
Hardware PC XT 8088-8086 Arquitectura de Computadoras
Para estar a la vanguardia de las tecnologías competentes en ese entonces, la IBM PC rápidamente requirió varias mejoras, para mantenerse a la par con el desarrollo de software y la necesidad de más RAM y capacidad en disco. Esta necesidad se satisfizo con la introducción de la PC XT la cual adoptó las siguientes mejoras:
Se aumentó el número de ranuras de expansión a 8. Se agregó adaptador de disco y disco duro. Se agregó un puerto serie y un paralelo como equipo estándar. La capacidad en RAM de la tarjeta madre se incrementó a 256KB. La fuente de energía se aumenta de 65 a 130 watts. La capacidad del disco flexible se mejoró de un solo lado a doble lado para una capacidad total de 360K.
En la figura a continuación, mostramos el sistema de la PC XT descrito por bloques, de esta manera podemos contrastar los atributos del IBM PC con las mejoras anteriormente mencionadas:
10
Hardware PC XT 8088-8086 Arquitectura de Computadoras
La IBM PC XT no incrementó el rendimiento del procesador manteniendo el 8088 a 4.77 MHz. El rendimiento de la PC XT se extendió incrementando la velocidad del reloj a 8 y 10 MHz. En algunas compatibles, al aumentar la velocidad del reloj, se agregaron estados de espera para los ciclos de memoria del procesador para permitir el uso de chips de RAM menos caros. El 8088 requiere cuatro ciclos para ejecutar un ciclo de memoria, con la adición de un estado de espera, se requieren cinco ciclos de reloj. A 4.77 MHz, un ciclo de reloj es de 210 ns y sin estado de espera el ciclo de memoria es 4 veces 210 ns, o 840 ns. A 10 MHz, los ciclos de reloj son de 100 ns y con cero estados de espera el ciclo de memoria es de 400 ns, o 2.1 veces más rápido que la PC original de 4.77 MHz. En cuanto a la Arquitectura de la PC XT, debemos decir que esta es original de IBM y fue implementada en base al microprocesador 8088 de la INTEL. Una idea general de esta encierra las siguientes características: -
Posee una máxima capacidad de direccionamiento de 1048576 BYTES, comúnmente conocido como 1024KB. Es una arquitectura Local BUS.
11
Hardware PC XT 8088-8086 Arquitectura de Computadoras -
Posee ocho canales de interrupciones mascarables y una no mascarable, controladas por el controlador de interrupciones 8259 y el microprocesador 8088 respectivamente. Posee 4 canales de acceso directo a memoria, todos controlados por el circuito integrado (IC) 8237 de la INTEL. Posee las señales de control básicas de lectura y escritura de memoria y puerto. Posee cuatro alimentaciones de: +12V, -12V, +5V y -5V. Todas las señales son 100% compatibles con TTL menos las señales de 12V y -12V. Es una arquitectura sincrónica, cuya primera versión fue implementada con un reloj de 4.77 MHZ.
El diagrama de bloques a continuación presenta de forma general y más completa cada uno de los componentes de la placa principal del PC/XT basado en el microprocesador 8088:
En cuanto a la circuitería de apoyo que ha sido mostrada en el diagrama anterior, el sistema PC XT usa adicionalmente como apoyo a las operaciones realizadas, los siguientes dispositivos:
12
Hardware PC XT 8088-8086 Arquitectura de Computadoras
CODIGO DEL INTEGRADO
FUNCION
74LS373
8 BIT LATCH ACTIVADO POR NIVEL
74LS245
8 BIT AMPLIFICADOR BIDIRECCIONAL
74LS244
8 BIT AMPLIFICADOR
74LS138
DECODIFICADOR 3/8
75477
AMPLIFICADOR INVERSOR
74LS175
FLIP FLOP D
74LS280
GENERADOR DE PARIDAD
74LS08
6 x INVERSOR
74LS32
4 x OR
74LS07
6 x BUFFER
74LS08
4 x AND
5. ESQUEMÁTICO DEL SISTEMA COMPLETO SISTEMA DE APLICACIÓN:
13
Hardware PC XT 8088-8086 Arquitectura de Computadoras
6. MUESTRA DE UNA MAINBOARD XT CON IDENTIFICACIÓN DE DISPOSITIVOS, ETIQUETADO Y ACCESORIOS:
14
Hardware PC XT 8088-8086 Arquitectura de Computadoras
Mainboard de PC XT con ID de dispositivos
Disco Duro de PC XT y Controlador
15
Hardware PC XT 8088-8086 Arquitectura de Computadoras
Disquetera de PC XT y Controlador
Case o Armario del PC XT con su Contenido
7. REGISTROS DEL 8088: Para ayudar al funcionamiento de las instrucciones, para poder manejar variables en memoria y para su propio funcionamiento, el microprocesador dispone de una serie de “variables” internas de nombres fijos que son los registros internos. En total hay 14 de estos registros, cada uno de los cuales está pensado principalmente para alguna función concreta. En seguida se dan detallan cada uno de estos registros, divididos según áreas de funcionalidad: 7.1.
Registros de Almacenamiento Temporal o de Datos:
En primer lugar se tiene:
AX (Registro Acumulador): Es usado sobre todo en operaciones aritméticas como primer operando y también como registro de propósito general a disposición del programador.
16
Hardware PC XT 8088-8086 Arquitectura de Computadoras
BX (Registro Base): Se usa principalmente para indicar posiciones de memoria (offset). CX (Registro Contador): Este registro se usa siempre que se necesite un contador en operaciones repetitivas y bucles. DX (Registro Dato): Se usa como registro auxiliar en operaciones aritméticas y como contenedor de datos a la hora de usar instrucciones de comunicación de puertos.
Estos cuatro registros, como todos los restantes, son de 16 bits, pero para permitir la realización de operaciones de tipo byte (8 bits) cada uno de estos cuatro registros está dividido en dos subregistros de 8 bits a los que se puede acceder de forma independiente (como se observa en la figura 1.2). Así, por ejemplo, los 8 bits inferiores de AX se llaman AL (L de low, bajo) y los 8 superiores AH (H de high, alto). En consecuencia, BX, CX y DX se dividen en BH/BL, CH/CL y DH/DL respectivamente. De esta forma se tiene que todas las instrucciones ensamblador pueden operar con datos de 8 y 16 bits según lo que se precise. En los demás registros esta subdivisión no es posible. 7.2.
Registros de Segmento:
Son cuatro registros de 16 bits usados para indicar direcciones de memoria:
7.3.
CS (Code Segment): Este registro es usado por el procesador, junto con el registro IP, para conocer dónde está la instrucción actual que está siendo ejecutada. DS (Data Segment): Se usa para indicar dónde están todos los datos del programa en ejecución. SS (Stack Segment): En este registro se indica al procesador dónde está la zona de memoria que se usa como segmento de pila. ES (Extra Segment): Es el registro que referencia al segmento extra, y se usa como apuntador de memoria auxiliar en operaciones complejas donde se necesitan dos punteros de datos simultáneos. Registros de la Pila:
La pila es un área de memoria importante. Tiene, en vez de uno, dos registros que se usan como desplazamiento (offset) para apuntar su contenido. Se usan como complemento al registro SS y son: 7.4.
SP (Stack Pointer): Es el registro que se reserva el procesador para uso propio en instrucciones de manipulación de la pila. BP (Base Pointer): Se usa como registro auxiliar. Registros Índices:
Se utilizan como desplazamientos complementarios para DS y ES a la hora de indicar la posición donde se encuentran los datos a los que se desea acceder. Son:
17
Hardware PC XT 8088-8086 Arquitectura de Computadoras 7.5.
SI (Source index): Se usa como puntero origen en operaciones de desplazamiento de datos entre dos zonas de memoria. DI (Destination index): Se usa como destino en operaciones de desplazamiento de datos. Registros de Instrucción:
Sólo hay uno, el registro IP (Instruction Pointer), es usado por la CPU para conocer la posición relativa a la base CS donde se encuentra la instrucción que se está ejecutando actualmente. Este registro no puede ser modificado directamente por parte del programador. Este puntero cambia su contenido automáticamente cada vez que se ejecuta una instrucción o cuando se salta a otro punto del programa mediante una instrucción de salto. 7.6.
Registro de Banderas:
Este registro es usado para tener el control de estado y control de las operaciones. La mayoría de sus 16 bits se utiliza para representar un estado concreto: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 CF -- PF -- AF -- ZF SF TF IF DF OF -- -- -- -Bit 0 - CF (Carry Flag): Es la bandera de acarreo. Se pone a 1 cuando se produce un resultado con acarreo tras una operación aritmética. Bit 1: No usado. Bit 2 - PF (Parity Flag): Cuando está a 1, indica que hay un número par de bits activos. Bit 3: No usado. Bit 4 - AF (Auxiliar Flag): Se usa como bandera auxiliar. Se pone a 1 cuando hay necesidad de realizar ajustes tras una operación de tipo BCD. Bit 5: No usado. Bit 6 - ZF (Zero Flag): Indica si se ha producido un resultado cero o una comparación con operadores iguales. Bit 7 - SF (Sign Flag): Indica si se ha producido un resultado negativo o comparación menor. Bit 8 - TF (Trap Flag): Es la bandera de atrape, usada en procesos de depuración de código. Bit 9 - IF (Interrupt Flag): Si está a 1, indica que está permitida la generación de interrupciones hardware que generan algunos periféricos, como la que realiza el teclado cada vez que una tecla es pulsada. Bit 10 - DF (Direction Flag): Indica a la CPU hacia donde se desplazan los punteros relativos en operaciones repetitivas de cadenas de datos. Bit 11 - OF (Overflow Flag): Indica si se ha producido un desbordamiento aritmético. Bit 12 al 15: No usados. La Figura mostrada a continuación muestra el Conjunto de Registros del 8088:
18
Hardware PC XT 8088-8086 Arquitectura de Computadoras
8. MODOS DE DIRECCIONAMIENTO: El 8088 puede direccionar más de los 65536 bytes de datos especificados por los 16 bits. El 8088 tiene una dirección de 20 bits que permite un tamaño de memoria física de 1, 048,576 bytes. Tomando en cuenta el criterio del programador, el almacenamiento está limitado a una región de 64 KB, sin embargo el programador puede mover esta región de 64 KB a alguna demarcación en el espacio de 1 MB. Esto se logra manipulando los contenidos del Registro de Segmento. El valor cargado en el Registro de Segmento se usa para localizar la región de 64 KB en el espacio de 1 MB. Debido a que este Registro es también de 16 bits, no puede por sí mismo especificar alguna demarcación en el espacio de 1 MB. A pesar de esto, el registro de 16 bits puede especificar 64 KB regiones diferentes. La dirección de memoria física se forma corriendo a la izquierda 4 bits el contenido del registro de segmento y sumándolo a la dirección de 16 bits. La figura ilustra la generación de la dirección física.
19
Hardware PC XT 8088-8086 Arquitectura de Computadoras
El valor del segmento se le llama dirección base, y una dirección dentro de un segmento se le llama offset. Así, cualquier dirección en el espacio de 1 MB se puede identificar especificando una base y un offset. Por lo tanto, se puede tener que muchas combinaciones de base y offset pueden usarse para especificar una dirección de memoria.
MODOS DE DIRECCIONAMIENTO:
A continuación pasamos a describir ambos modos de Direccionamiento: el de Datos y el de Memoria de Programa. Para describir los modos se hará uso de la instrucción MOV destino, origen.
Modos de Direccionamiento de Datos: Se tienen los siguientes:
a) Direccionamiento por Registro: Transfiere el contenido de un registro a otro del mismo tamaño. El único MOV que no se permite es el que se hace entre un registro de segmento y otro. Tampoco se puede modificar el registro de segmento de código. Es rápido. MOV AX, BX (AX
View more...
Comments