Sei sulla pagina 1di 10

El Microprocesador 8088

Figura 10. El microprocesador 8088 El microprocesador 8088 es una derivacin 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 ue el 8088 tiene una ruta de datos interna de 16 bits pero la interface a memoria de solo 8 bits. El cdigo escrito para uno se e!ecutar" en el otro sin cambios. #a diferencia en el ancho del bus no hace ue el 8086 sea el doble de r"pido ue el 8088. El 8088 e!ecuta sus instrucciones desde una cola interna la cual se llena tan pronto como ha$ una localidad vac%a; as%, es posible ue se traslapen los ciclos de e!ecucin $ b&s ueda. 'on tal de ue las instrucciones se e!ecuten de la cola interna $ no tengan ue esperar un ciclo del bus, su e!ecucin es tan r"pida como pudiera ser en el 8086. (i los ciclos de datos son para 16 bits, tomaran dos ciclos de memoria; mientras ue en el 8086 slo tomar" uno. El siguiente es un resumen de los puntos de inter)s del 8088*

+r uitectura interna de 16 bits (oporta 1 ,- de memoria +ritm)tica con signo $ sin signo de 8 $ 16 bits, tanto en binario como en decimal, inclu$endo multiplicacin $ divisin. 1. registros de 16 bits. /nterrupcin enmascarable $ no enmascarable. 0. modos de direccionamiento de operandos. +cceso directo a memoria (oporte para coprocesadores de bus local. (oporte para E1( mapeada en memoria. 2peraciones de cadena.

3na manera de aprender acerca del 8088 es conocer las funciones de sus pines. #a figura 10 muestra un diagrama funcional a blo ues $ un diagrama de la definicin de las patitas del 8088. El 8088 tiene dos modos de operacin ue se seleccionan con la pata 44 5,61,78. 'uando esta en alto se selecciona el modo m%nimo $ la interface de sus patas es compatible con el 8089. En la :', la pata 44 esta en ba!o tal ue opera en el modo m"ximo. :or lo tanto, slo describiremos las funciones de las patas en este modo. AD0 AD7 * #as se;ales de estas patas transmiten informacin de direcciones de memoria $ E1( en cada ciclo del bus. Estas se;ales est"n multiplexadas; llevan los bits +0 < += de direccin al principio del ciclo del bus, despu)s se usan como el bus de datos del procesador. En la :', esta informacin de direccin se asegura 5latched8 $ se convierte en la direccin del bus del sistema. A8 A15 * Estas l%neas son la salida de los bits +8 < +19 de direccin para memoria $ E1( en cada ciclo del bus. 6o est"n multiplexadas $ permanecen estables durante el ciclo del bus. En la :', esta informacin de direccin se asegura 5latched8 $ se convierte en los bits +8 < +19 de direccin del bus del sistema. A16/S3 A19/S6 * +l inicio de cada ciclo del bus para memoria, estas se;ales llevan los bits +16 < +1> de direccin de memoria. ?urante el resto del ciclo, presentan el estado interno del 8088. 'uando (6 es ba!o, (9 da el estado de habilitacin de la bandera de interrupcin, $ (. $ (4 se codifican para decir cual registro de segmento se esta usando. En la :' no se usa esta informacin de estado. Estas l%neas se aseguran $ se convierten en los bits +16 < +1> de direccin del bus del sistema. CLK* Esta l%nea proporciona la informacin de tempori@acin para el 8088. En la :', esta l%nea viene del relo! 808.. RQ/ !0* Es una se;al bidireccional usada por otros maestros de bus local para solicitar el uso del bus local. En la :', esta l%nea se conecta a un enchufe de procesador auxiliar, compatible con el coprocesador num)rico 808=.

RQ/ !1* Aeali@a la misma funcin ue AB1CD0, pero tiene un nivel de prioridad m"s ba!o. En la :' no se usa. L"CK* (e activa por una instruccin de seguro 5locE8 $ permanece activa hasta el final de la siguiente instruccin. (e usa para indicar a otros maestros de bus ue no deben intentar ganar el control del bus. ?ebido a ue el dise;o de la :' no es de bus multimaestro, esta l%nea no se usa. #M$* Esta l%nea de entrada genera una interrupcin no enmascarable 5nonmasEable8. En la :' esta entrada de peticin de interrupcin se usa para reportar errores de paridad en la memoria de la tar!eta madre, acepta peticiones de interrupcin del enchufe del procesador auxiliar, $ acepta peticiones de dispositivos sobre el bus del sistema. $#!R* Esta se;al de entrada es la de interrupcin mascarable. En la :', se conecta al controlador de interrupciones 809>+, el cual expande la entrada a 8 entradas de interrupcin al sistema. READ%* Esta l%nea de entrada se usa para insertar estados de espera en los ciclos del bus del 8088 $, as%, extender la longitud del ciclo. En la :', esta l%nea viene del relo! 808.+, el cual lo sincroni@a con el relo! del sistema. #a :' usa la funcin AE+?F para insertar un estado de espera en todos los accesos de puerto de E1( $ ?,+, $ proporciona una funcin de generacin de estados de espera en el bus del sistema. RESE!* (e usa para detener al microprocesador. En la :', esta se;al viene del relo! 808.+, el cual recibe su entrada de la fuente de energ%a del sistema. #a fuente del sistema genera una se;al llamada energa buena, la cual indica ue los niveles de energ%a est"n en niveles adecuados $ el AE(ED se puede remover del 8088. QS0 & QS1* Estas l%neas de salida dan el estado de la cola de instruccin interna. En la :', estas l%neas est"n alambradas con el enchufe del procesador auxiliar de tal manera ue puede seguir el estado de la cola del 8088. !ES!* Este pin de entrada se prueba por la instruccin espera de prueba. (i esta en ba!o, la e!ecucin continua; si esta en alto, el 8088 espera en un estado de ocioso hasta ue la pata va a ba!o. En la :', se alambra con la salida -3(F del 808=. S0' S1 & S(* Estas salidas presentan informacin del estado ue pertenece al tipo de ciclo de bus ue ser" e!ecutado. En la :', estos bits se alambran al controlador de bus 8088, donde se decodifican. #as salidas decodificadas del 8088 se convierten en las l%neas de control del bus del sistema. Direccio)a*ie)+o de *e*oria

3na de las caracter%sticas &nicas del 8088 es su capacidad para direccionar m"s de los 69946 b$tes de datos especificados por los 16 bits. El 8088 tiene una direccin de 00 bits ue permite un tama;o de memoria f%sica de 1,0.8,9=6 b$tes. ?esde el punto de vista del programador el almacenamiento esta limitado a una regin de 6. G-, pero el programador tiene la capacidad de mover esta regin de 6. G- a alguna demarcacin en el espacio de 1 ,-. Esto se hace manipulando los contenidos del registro especial llamado registro de segmento.

Figura 11. Ceneracin de memoria en el 8088 El valor cargado en el registro de segmento se usa para locali@ar la regin de 6. G- en el espacio de 1 ,-. ?ebido a ue el registro de segmento es tambi)n de 16 bits, no puede por si mismo especificar alguna demarcacin en el espacio de 1 ,-. :ara resolver este problema, el registro de 16 bits puede especificar 6. G- regiones diferentes. #a direccin de memoria f%sica se forma corriendo a la i@ uierda . bits el contenido del registro de segmento $ sum"ndolo a la direccin de 16 bits. #a figura 11 ilustra la generacin de la direccin f%sica. El valor del segmento se le llama direccin base, $ una direccin dentro de un segmento se le llama offset. +s%, cual uier direccin en el espacio de 1 ,- se puede identificar especificando una base $ un offset. 6ote ue muchas combinaciones de base $ offset se pueden usar para especificar una direccin de memoria. Re,is+ros 'omo $a se menciono el 8088 tiene 1. registros de 16 bits. Estos registros se pueden clasificar como se muestra en la figura 10.

Figura 10. 'on!unto de registros del 8088 Aegistros de datos. 'uatro registros de 16 bits de propsito general normalmente se usan para reali@ar operaciones aritm)ticas $ lgicas. Estos registros se pueden direccionar tambi)n como de 8 bits. El acumulador +7 usualmente se usa para acumular los resultados de sumas, restas, etc. El registro base -7 apunta a la direccin de inicio 5llamada la base8 de una estructura de memoria. El registro cuenta '7 frecuentemente especifica el n&mero de veces ue alguna operacin se repite. F el registro de datos ?7 muchas veces mantiene datos, ui@" pasados a una subrutina para procesamiento. En algunos casos ciertas instrucciones re uieren registros espec%ficos. +puntador e /ndice. D%picamente se usan para generar direcciones de memoria efectivas. Estos registros est"n mu$ relacionados con operaciones espec%ficas. El apuntador pila siempre apunta al tope de la pila. El apuntador base usualmente direcciona variables almacenadas dentro de la pila. El %ndice fuente e %ndice destino se conocen como registros de cadena; usualmente sirven para facilitar la carga de procesamiento de b$tes de cadenas. Aegistros de (egmento. #ocali@an el inicio de . segmentos de 6.G en memoria. Estos registros est"n altamente especiali@ado, no se pueden reali@ar

operaciones matem"ticas sobre ellos, ni usarlos para almacenar resultados. El registro de segmento de cdigo direcciona el inicio del programa en memoria. El segmento de datos direcciona el inicio de las variables del programa. El segmento extra locali@a un segmento de datos adicional si es necesario, aun ue en muchos programas E( $ ?( direccionan la misma memoria, facilitando algunas operaciones unidas a estos registros. El segmento pila locali@a el inicio del espacio de la pila del programa. +puntador de /nstruccin. 'ontiene el offset de la direccin de la siguiente instruccin desde el valor base del segmento de cdigo actual. -anderas. +un ue el registro del estado de banderas es de 16 bits, solo se usan >. Frecuentemente se refiere estas banderas agregando a la letra una f al final, por e!emplo of. #as banderas refle!an el resultado de varias operaciones e instrucciones. #a siguiente es una breve descripcin de cada bandera* +F 'F 2F (F :F IF ?F /F DF -andera de acarreo auxiliar. (e pone cuando ha$ acarreo o pedir prestado 5borroH8 para un medio b$te 5nibble8 en aritm)tica decimal. -andera de acarreo. (e pone si ha$ acarreo o pedir prestado para el bit de orden m"s alto como resultado de una operacin aritm)tica. -andera de sobreflu!o. (e pone si ocurre un sobreflu!o aritm)tico. /ndica ue el resultado es bastante grande para el destino. -andera de signo. /ndica el signo del resultado en el bit de orden alto, si es uno es negativo. -andera de paridad. Este bit se pone cuando el resultado tiene un n&mero par de unos. -andera de cero. (e pone cuando el resultado es cero. -andera de direccin. 'uando se pone causa ue las operaciones de cadena se autodecrementen o se procesen de la direccin m"s alta a la m"s ba!a. (i el bit es cero la cadena se procesa en autoincremento. -andera habilitacin de interrupcin. 'uando se pone el 8088 reconoce interrupciones enmascarables externas. -andera de trampa. 'uando es uno, pone al 8088 en el modo de un solo paso. ?espu)s de cada instruccin se genera autom"ticamente una interrupcin.

Co)-.)+o de $)s+r.ccio)es del *icroprocesador 8088 Dodas las instrucciones del 8088 est"n divididas por funcin en seis categor%as* /nstrucciones de transferencia de datos /nstrucciones aritm)ticas /nstrucciones lgicas /nstrucciones de control de flu!o /nstrucciones de control de procesador /nstrucciones de cadenas

/nstrucciones de transferencia de datos ,nemnico12perandos /nstrucciones ,2J destino, fuente generales :2: destino :3(K inmediato 7'KC destino, fuente Entrada 1 (alida /n acumulador, puerto 23D puerto, acumulador ?ireccin #?( destino, fuente #E+ destino, fuente #E( destino, fuente -andera #+KF :2:F :3(KF (+KF /nstrucciones aritm)ticas ,nemnico12perandos (uma +++ +?' destino, fuente +?? destino, fuente ?++ /6' destino Aesta ++( ',: destino, fuente ?+( ?E' destino 6EC destino (-- destino, fuente (3- destino, fuente ,ultiplicacin ++, /,3# fuente ,3# fuente ++? '-L 'L? ?/J fuente /?/J fuente /nstrucciones lgicas #gicas ,nemnico12perandos +6? destino, fuente 62D destino 2A destino, fuente DE(D destino, fuente 72A destino, fuente

?escripcin ,ueve un b$te o palabra (aca datos de la pila ,ete datos en la pila /ntercambia b$tes $ palabras #ee b$te o palabra Escribe b$te o palabra 'arga apuntador usando ds 'arga direccin efectiva 'arga apuntador usando ds 'arga ah con algunas banderas (aca banderas de la pila ,ete banderas en la pila +lmacena ah en banderas

?ivisin

?escripcin +!uste +('// para la suma (uma con acarreo (uma b$tes o palabras +!uste decimal para la suma /ncremento +!uste +('// para la resta 'ompara +!uste decimal para la resta ?ecrementa b$te o palabra 'omplemento a dos Aesta con pedir prestado Aesta +!uste +('// para la multiplicacin ,ultiplica enteros ,ultiplica +!uste +('// para la divisin 'onvierte b$te a palabra 'onvierte palabra a doble palabra ?ivisin ?ivisin entera ?escripcin +6? 'omplemento a uno 2A :rueba bits 2A exclusiva

'orrimiento1Aotacin A'# destino, cuenta A'A destino, cuenta A2# destino, cuenta A2A destino, cuenta (+A destino, cuenta (K#1(+# destino, cuenta (KA destino, cuenta /nstrucciones de control de flu!o ,nemnico12perandos Dransferencia '+## ob!etivo /ncondicional M,: ob!etivo AED valor AED6 valor

Aota a la i@ . + trav)s del acarreo Aota a la der. + trav)s del acarreo Aota a la i@ uierda Aota a la derecha 'orrimiento aritm)tico a la derecha 'orrimiento a la i@ .1 aritm)tico a la i@ . 'orrimiento a la derecha

Dransferencia 'ondicional

#a@o

?escripcin :rocedimiento de llamada -rinco incondicional Aegreso de procedimiento Aegreso de procedimiento cercano AEDF valor Aegreso de procedimiento le!ano M+1M6-E ob!etivo corto -rinca si arriba1no aba!o o igual M+E1M6- ob!etivo corto -rinca si arriba o igual1no aba!o M-1M6+E ob!etivo corto -rinca si aba!o1no arriba o igual M-E1M6+ ob!etivo corto -rinca si aba!o o igual1no arriba M' ob!etivo corto -rinca si acarreo ME1MI ob!etivo corto -rinca si igual10 MC1M6#E ob!etivo corto -rinca si ma$or1no menor o igual MCE1M6# ob!etivo corto -rinca si ma$or o igual1 no menor M#1M6CE ob!etivo corto -rinca si menor1 no ma$or o igual M#E1M6C ob!etivo corto -rinca si menor o igual1 no ma$or M6' ob!etivo corto -rinca si no acarreo M6E1M6I ob!etivo corto -rinca si no igual10 M62 ob!etivo corto -rinca si no ha$ sobreflu!o M6:1M:2 ob!etivo corto -rinca si 62D paridad1 paridad impar M6( ob!etivo corto -rinca si 62D signo M2 ob!etivo corto -rinca si ha$ sobreflu!o M:1M:E ob!etivo corto -rinca si ha$ paridad1 paridad par M( ob!etivo corto -rinca si signo M'7I ob!etivo corto -rinca si cx N 0 #22: ob!etivo corto #a@o mientras cx OP 0 #22:E1#22:I ob!etivo #a@o mientras igual10

'ontrol de interrupcin

corto #22:6E1#22:6I ob!etivo corto /6D tipo de interrupcin /6D2 /AED

#a@o mientras no igual1 no 0 /nterrupcin /nterrupcin en sobreflu!o Aegreso de interrupcin ?escripcin #impia acarreo #impia direccin 5incremento8 #impia habilitacin de int. 'omplementa acarreo :one acarreo :one direccin 5decremento8 :one habilitacin de int. Escape a coprocesador :ara procesador +segura el bus Espera al coprocesador 6o operacin

/nstrucciones de control de procesador ,nemnico12perandos -andera '#' '#? '#/ ',' (D' (D? (D/ (incroni@acin E(' inmediato, fuente externa K#D #2'G L+/D ,iscel"nea 62: /nstrucciones de cadenas ,nemnico12perandos Dransferencia de #2?( fuente cadena #2?(#2?(L ,2J( destino, fuente ,2J(,2J(L (D2( destino (D2((D2(L ',:( destino, fuente ',:(',:(L ('+( destino ('+(('+(L AE: AE:E1AE:I AE:6E1AE:6I

/nspeccin de cadena

:refi!o de repeticin

?escripcin 'arga cadena de b$tes palabras 'arga cadena de b$tes 'arga cadena de palabras ,ueve cadena de b$tes palabras ,ueve cadena de b$tes ,ueve cadena de palabras +lmacena cadena de b$tes palabras +lmacena cadena de b$tes +lmacena cadena de palabras 'ompara cadena de b$tes palabras 'ompara cadena de b$tes 'ompara cadena de palabras Examina cadena de b$tes palabras Examina cadena de b$tes Examina cadena de palabras Aepite Aepite mientras igual10 Aepite mientras no igual10

Potrebbero piacerti anche