Está en la página 1de 16

1 ARQUITECTURA DEL MICROPROCESADOR 8086

Introducción. Los procesadores de 16 bits fueron una nueva generación de


microprocesadores desarrollados para reemplazar o completar a las microcomputadoras de
8 bits de los años setenta, que fueron las que comenzaron la revolución de las
microcomputadoras.
El 8086 fue diseñado para trabajar con lenguajes de alto nivel, disponiendo de un soporte
hardware con el que los programas escritos en dichos lenguajes ocupan un pequeño espacio
de código y pueden ejecutarse a gran velocidad. Esta concepción, orientada al uso de
compiladores, se materializa en un conjunto de facilidades y recursos, y en unas
instrucciones entre las que cabe destacar las que permiten efectuar operaciones aritméticas
de multiplicar y dividir, con y sin signo; las que manejan cadenas de caracteres, etc.
En su momento, el 8086 junto con el 8088 fueron los microprocesadores más empleados
dentro de su categoría, especialmente desde que IBM los adoptó para la construcción de su
computadora personal. Muchos fabricantes de microordenadores utilizaron esta familia
microcomputadora para fabricar equipos de tipo profesional.
Hoy en día, la utilización del 8086 es más reducida, quedando principalmente orientado a
la enseñanza, como base de los microprocesadores de la última generación. Antes de pasar
a hacer una descripción más detallada de la arquitectura interna del microprocesador,
vamos a destacar brevemente las principales características del 8086:
• El 8086 dispone de instrucciones especiales para el tratamiento de cadenas de caracteres.
• Los registros del 8086 tienen una misión específica, por lo que se podría decir que cada
uno de ellos tiene su propia personalidad, aunque varios comparten tareas comunes.
• El encapsulado del 8086 está formado por 40 patillas, simplificando así el hardware,
aunque por contra, es necesario la multiplicación del bus de datos con el de direcciones.
• El 8086 dispone de un conjunto de registros, denominados ‘cola de instrucciones’, en el
cual se van almacenando de forma anticipada los códigos de las instrucciones,
consiguiendo que este aumente su velocidad de trabajo. Asignatura: Estructura de
Computadores. Telecomunicación Arquitectura del Microprocesador 8086 Depto.
• Las 20 líneas del bus de direcciones sólo permiten direccionar una memoria de 1
Megabyte.
• El 8086 requiere una señal de reloj exterior, siendo 5 y 8 MHz las frecuencias típicas de
funcionamiento.
• El 8086 dispone de una arquitectura “pipe line”, es decir, que la CPU puede seguir
leyendo instrucciones en los tiempos en que el bus no se utiliza.
LA ARQUITECTURA INTERNA DEL 8086. Este microprocesador está dividido en dos
sub-procesadores. Por un lado está la “Unidad de Ejecución” (EU) encargada de ejecutar
las instrucciones, la cual posee una ALU (unidad aritmético-lógica) con un registro de
estado con varios flas asociados y un conjunto de registros de trabajo, y por otro está la
“Unidad de Interfaz de bus” (BIU) encargada de la búsqueda de las instrucciones, ubicarlas
en la cola de instrucciones antes de su ejecución y facilitar el direccionamiento de la
memoria, es decir, encargada de acceder a datos e instrucciones del mundo exterior.
El 8086 contiene 14 registros de 16 bits, de los cuales, unos pertenecen a la EU, que
normalmente se suelen usar para direccionamiento, y otros pertenecen a la BIU. EU BIU
AH AL BH BL CH CL DH DL SP BP SI DI IP FLAGS H FLAGS L CS DS SS es puntero
de pila puntero de base índice fuente índice destino puntero de instrucción indicadores de
estado acumulador base contador datos segmento de código segmento de datos segmento de
pila segmento extra juego de registros del 8086

Los registros del 8086 podrían clasificarse en tres grupos de acuerdo con sus funciones. El
grupo de datos, que es esencialmente el conjunto de registros aritméticos; el grupo de
apuntadores, que incluye los registros base e índices y también el contador Asignatura.
El grupo de registros de datos o registros generales son registros de 16 bits, pudiéndose
usar cada uno de ellos como dos registros de 8 bits. Aun siendo registros de uso general
tiene asignadas unas operaciones específicas. Así, por ejemplo, el AX es el acumulador de
16 bits y usándolo a veces provoca que el ensamblador produzca un lenguaje máquina
codificado en muy pocos octetos. Se emplea en multiplicaciones, divisiones,
entradas/salidas, etc.; el registro BX, se utiliza como registro base para el direccionamiento
de memoria; el registro CX, se utiliza como contador y almacenaje de datos y el registro
DX, se utiliza para almacenar datos de 16 bits.
Puede pensarse que es una extensión del registro AX para multiplicaciones y divisiones con
16 bits. Otra de sus funciones específicas es para almacenar la dirección de E/S durante
algunas operaciones de E/S. El grupo de apuntadores, es decir, punteros e índices está
formado por los registros IP, SP, BP, SI, DI. Los registros punteros son dos:
• IP como registro puntero de instrucciones conocido principalmente como contador de
programa. Este contiene un valor de 16 bits que es un desplazamiento sobre la dirección del
registro CS (segmento de código) que más adelante detallaremos.
• SP como registro de pila. El registro BP actúa como base de la dirección de la pila. Los
registros punteros de instrucciones (IP) y puntero de pila (SP) se encargan del control de
flujo del programa. Los registros SI y DI actúan como índices asociados al registro DS
(segmento de datos). El grupo de registros de segmento está formado por los registros CS,
SS, DS y ES.
• CS (segmento de código).
• DS (segmento de datos).
• SS (segmento de pila).
• ES (segmento extra)
Características de los procesadores CISC
El tamaño del código es pequeño, lo que implica una baja necesidad de memoria RAM
Las instrucciones complejas suelen necesitar más de un ciclo de reloj para ejecutar el
código
Se requieren menos instrucciones para escribir un software
Ofrece programación más sencilla en lenguaje ensamblador
Soporte para una estructura de datos compleja y fácil de compilar en lenguajes de alto nivel
Compuesto por menos registros y más nodos de direccionamiento, habitualmente entre 5 y
20
Instrucciones pueden ser más grandes que una sola palabra
Se enfatiza la construcción de instrucciones en el hardware, ya que es más rápido que crear
el software
Ventajas de los procesadores CISC
Para el compilador se requiere de poco esfuerzo para traducir programas de alto nivel o
lenguajes de instrucciones a lenguaje ensamblador o máquina
El tamaño del código es corto, reduciendo los requisitos de memoria
Almacenar las instrucciones CISC requieren de menos cantidad de memoria RAM
Genera procesos de administración de uso de energía que permiten ajustar la velocidad y el
voltaje del reloj
Requiere de menos instrucciones configuradas para realizar la misma instrucción que la
arquitectura RISC

Desventajas de los procesadores CISC

Pueden requerir de varios ciclos de reloj para completar una instrucción de un software
El rendimiento del equipo sufre un descenso debido a la velocidad del reloj
La ejecución mediante canalización en procesadores CISC puede ser realmente complicado
Este diseño de procesadores requiere muchos más transistores que la arquitectura RISC
Utilizan sobre el 20% de las instrucciones existentes en un evento de programación
Tienen un diseño mucho mayor que la arquitectura RISC, lo cual conlleva más generación
de temperatura, mayor consumo y mayor requisito de espacio físico

Características de las arquitecturas RISC


Qué es RISC
Es una arquitectura de procesadores basada en una colección de instrucciones simples y
altamente personalizadas. RISC se construye para minimizar el tiempo de ejecución de una
instrucción, optimizando y limitando el número de instrucciones.

Instrucciones de tamaño fijo y presentadas en un reducido número de formatos.


Sólo las instrucciones de carga y almacenamiento acceden a la memoria de datos.
El objetivo de diseñar máquinas con esta arquitectura es posibilitar la segmentación y el
paralelismo en la ejecución de instrucciones y reducir los accesos a memoria.

Las máquinas RISC protagonizan la tendencia actual de construcción de


microprocesadores. PowerPC, DEC Alpha, MIPS, ARM, SPARC… son ejemplos de
algunos de ellos.
RISC es una filosofía de diseño de CPU para computadora que está a favor de conjuntos de
instrucciones pequeñas y simples que toman menor tiempo para ejecutarse.
El tipo de procesador más comúnmente utilizado en equipos de escritorio, el x86, está
basado en CISC en lugar de RISC, aunque las versiones más nuevas traducen instrucciones
basadas en CISC x86 a instrucciones más simples basadas en RISC para uso interno antes
de su ejecución.
Entre las ventajas de RISC
La CPU trabaja más rápido al utilizar menos ciclos de reloj para ejecutar instrucciones.
Utiliza un sistema de direcciones no destructivas en RAM. Eso significa que, a diferencia
de CISC, RISC conserva después de realizar sus operaciones en memoria los dos operados
y su resultado, reduciendo la ejecución de nuevas operaciones.
Cada instrucción puede ser ejecutada en un solo ciclo del CPU.
Ejemplo de microprocesadores basados en la tecnología RISC:
MIPS, Millions Instruction Per Second.
PA-RISC, Hewlett Packard.
SPARC, Scalable Processor Architecture, Sun Microsystems.
POWER PC, Apple, Motorola e IBM

El estudiante crea un cuadro sinóptico de los sistemas numéricos


(binario, octal, decimal, hexadecimal).
SISTEMA DECIMAL

Bits y Bytes
 
Un número binario 0 puede estar representado por 0 voltios de electricidad (0 = 0 voltios).
Un número binario 1 puede estar representado por +5 voltios de electricidad (1 = +5
voltios).
Los computadores están diseñados para usar agrupaciones de ocho bits. Esta agrupación de
ocho bits se denomina byte.  En un computador, un byte representa una sola ubicación de
almacenamiento direccionable. Estas ubicaciones de almacenamiento representan un valor
o un solo carácter de datos como, por ejemplo, un código ASCII. La cantidad total de
combinaciones de los ocho interruptores que se encienden y se apagan es de 256. El
intervalo de valores de un byte es de 0 a 255. De modo que un byte es un concepto
importante que se debe entender si uno trabaja con computadores y redes. 

SISTEMA OCTAL
El sistema numérico en base 8 se
llama octal y utiliza los dígitos 0 a 7. 

Para convertir un número en base decimal a


base octal se divide por 8 sucesivamente
hasta llegar a cociente 0, y los restos de las
divisiones en orden inverso indican el
número en octal. Para pasar de base 8 a base
decimal, solo hay que multiplicar cada cifra
por 8 elevado a la posición de la cifra, y
sumar el resultado. 

Ejemplos: 
164(10)=x(8) 
164:8= 20, resto 4 
20:8= 2, resto 4 
2:8=0, resto 2 
entonces 164(10) = 244(8) 

Ejemplo del sistema octal

SISTEMA DECIMAL

El sistema decimal es una técnica de


numeración en la que las cantidades se
representan utilizando como base aritmética
el número diez y sus potencias. Se trata del
sistema de uso más común.
Es decir, el sistema decimal es aquel donde,
para representar una cifra, se toma como
referencia el 10. Así, cada dígito, de derecha
a izquierda, se multiplica por diez elevado a
una potencia, empezando desde 0 y
siguiendo con el 1, 2, 3, y así
consecutivamente en orden ascendente.
La notación del sistema decimal sería la
siguiente, según el tipo de número
Para números enteros: De izquierda a
derecha, el primer dígito corresponde a las
unidades (se multiplica por 10 elevado a la
potencia 0), el segundo a las decenas (se
multiplica por 10), el tercero a las centenas
(se multiplica por 10 elevado al cuadrado),
el cuatro al millar (se multiplica por 10
elevado al cubo), y así sucesivamente.
Para números no enteros: Se recurre a
separar con una coma o punto decimal para
separar la parte entera (al lado izquierdo) de
la fraccionaria (al lado derecho). Para leer la
parte entera lo haremos de la forma que ya
hemos explicamos arriba. Asimismo, para la
parte fraccionaria, utilizamos las potencias
negativas de diez, yendo de izquierda a
derecha de mayor a menor, 

sistema hexadecimal
El sistema hexadecimal (abreviado hex.) es
el sistema de numeración posicional que
tiene como base el 16. Su uso actual está
muy vinculado a la informática y ciencias de
la computación donde las operaciones de
la CPU suelen usar el byte u octeto como
unidad básica de memoria, debido a que un
byte representa valores posibles, y esto
puede representarse como  que equivale al
número en base 16 dos dígitos
hexadecimales corresponden exactamente a
un byte.
En principio, dado que el sistema usual de
numeración es de base decimal y, por ello,
solo se dispone de diez dígitos, se adoptó la
convención de usar las seis primeras letras
del alfabeto latino para suplir los dígitos que
faltan. El conjunto de símbolos es el
siguiente

Convertir los cuatro (4) últimos números de su


identificación a binario y hexadecimal, explicando el Dec Hex Binario
procedimiento. 0 0 0 0 0 0
Números a convertir a binario: 18,91 1 1 0 0 0 1
2 2 0 0 1 0
18 3 3 0 0 1 1
¿ 4
2 ¿4¿ ¿ 0
2 18=100102 4 4 0 1 0 0
9 ¿ 1
2/¿ 1 5 5 0 1 0 1
0
91/2=45/2=22/2=11/2=10/=5/2=2/=1 6 6 0 1 1 0
0
7 7 0 1 1 1
1 1 0 1 0 1 0 1 1
8 8 1 0 0 0
91=101010112 9 9 1 0 0 1
Sistema hexadecimal 10 A 1 0 1 0
11 B 1 0 1 1
Otro código que se usa con cierta frecuencia es el hexadecimal, es decir,
12 C 1 1 0 0
en base dieciséis.
Consiste en utilizar las letras A, B, C, D, E y F para representar los 13 D 1 1 0 1
números del diez al quince, mientras que para el dieciséis emplearemos el 14 E 1 1 1 0
1 y el 0. 15 F 1 1 1 1

Conversión de binario a hexadecimal


Esta conversión se realiza con la tabla de equivalencia donde tomamos los valores binarios
y los agrupamos en serie de 4 dígitos y realizamos el comparativo con la tabla de
equivalencia tomando el valor según corresponda, el valor encontrado correspondería al
número hexadecimal representado por el 16
El resultado que se encuentra a continuación representa los 4 últimos dígitos de mi
documento de identificación en 2 grupos.
[0001][0010 ¿ ¿2 =( 1, 2 ¿16 los dos números en corchetes seria el número hexadecimal

1 2
[1010] [1011¿2 =( A,B ¿16

A B
Ahora realizaremos la conversión de los 4 dígitos en conjunto.
1891¿2 =945¿2=472¿2 =236¿2 =118¿2 =59¿2=29¿2 =14¿2 =7¿2=3¿2 =1

1 1 0 0 0 1 1 0 1 1 12

1891= 1 1 0 0 0 1 1 0 1 1 12

Ahora realizaremos la conversión de binario a hexadecimal utilizando la tabla de


equivalencia
[0 1 1 0 ] [0 0 1 1] [ 0 1 1 1 ¿ ¿2 = (6, 3, 7 ¿16 este sería nuestro
hexadecimal

6 3 7

Convertir los dos (2) primeros y los dos (2) últimos


números de su identificación a numeración binaria y con
ellos realizar las siguientes operaciones suma, resta y
multiplicación explicando el procedimiento.
Explicar con ejemplos en qué consisten las operaciones lógicas AND, OR, NOT, XOR

 Dichas operaciones lógicas son compuertas lógicas las cuales son circuitos electrónicos
diseñados para obtener resultados booleanos (0,1),
Compuerta AND

Para la compuerta AND, La salida estará en estado alto de tal manera que solo si las dos
entradas se encuentran en estado alto. Por esta razón podemos considerar que es una
multiplicación binaria.

Operación Q=A.B, La cual comprovamos con la tabla de verdad


AND OR

Compuerta OR. La compuerta OR, la salida estará en estado alto cuando cualquier


entrada o ambas estén en estado alto. De tal manera que sea una suma lógica. Operación
Q=A+B

Compuerta NOT
En la compuerta NOT, el estado de la salida es inversa a la entrada. Evidentemente, una
negación.

Q=Q Tabla de verdad

XOR

La compuerta XOR Su salida estará en estado bajo cuando las dos entradas se encuentren
en estado bajo o alto. Al mismo tiempo podemos observar que entradas iguales es cero y
diferentes es uno.

 Operación

 Q= A.B+ A.B Tabla de verdad


 El estudiante elabora una tabla donde exprese en forma clara y
amplia los registros de un procesador 8086. Ejemplo:

PROCESADOR INTEL 8086

Este procesador dispone de 14 registros de 16 bits (el 286 alguno más, pero no se suele
emplear bajo
DOS). La misión de estos registros es almacenar las posiciones de memoria que van a
experimentar repetidas
manipulaciones, ya que los accesos a memoria son mucho más lentos que los accesos a los
registros. Además,
hay ciertas operaciones que sólo se pueden realizar sobre los registros. No todos los
registros sirven para almacenar datos, algunos están especializados en apuntar a las
direcciones de memoria. La mecánica básica de
funcionamiento de un programa consiste en cargar los registros con datos de la memoria o
de un puerto de
E/S, procesar los datos y devolver el resultado a la memoria o a otro puerto de E/S.
Obviamente, si un dato
sólo va a experimentar un cambio, es preferible realizar la operación directamente sobre la
memoria, si ello es
posible. A continuación, se describen los registros del 8086.
AX SP CS IP
BX BP DS flags
CX SI SS
DX DI ES
Registros Registros Registros de Registro puntero de
de datos punteros de pila e Segmento instrucciones y flags
índices

Registros de datos:
AX, BX, CX, DX: pueden utilizarse bien como registros de 16 bits o como dos
registros separados de 8
bits (byte superior e inferior) cambiando la X por H o L según queramos referirnos a la
parte alta o baja respectivamente
Si se realiza cualquier cambio sobre AH o AL se altera AX se puede tomar como ejemplo
que al incrementar AH se le están añadiendo 256 unidades a AX.

En esta parte se describe cada una como tal.

 AX = Acumulador.
Es el registro principal, es utilizado en las instrucciones de multiplicación y división
y en algunas
instrucciones aritméticas especializadas, así como en ciertas operaciones de carácter
específico como entrada, salida y traducción. La verdad es que el 8086 es suficientemente
potente para realizar las operaciones lógicas, la
suma y la resta sobre cualquier registro de datos, no necesariamente el acumulador.

 BX = Base.
Se usa como registro base para referenciar direcciones de memoria con
direccionamiento indirecto,
manteniendo la dirección de la base o comienzo de tablas o matrices. De esta manera, no es
preciso indicar una posición de memoria fija, sino el número BX
(así, haciendo avanzar de unidad en unidad a BX,

 CX = Contador.

Se utiliza comúnmente como contador en bucles y operaciones repetitivas de manejo


de cadenas. En las
instrucciones de desplazamiento y rotación se utiliza como contador de 8 bits.

 DX = Datos.

Usado en conjunción con AX en las operaciones de multiplicación y división que


involucran o generan
datos de 32 bits.

− 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.

 CS = Registro de segmento de código (code segment).


Contiene la dirección del segmento con las instrucciones del programa. Los
programas de más de 64 Kb
requieren cambiar CS periódicamente.

 DS = Registro de segmento de datos (data segment).


Segmento del área de datos del programa.
 SS = Registro de segmento de pila (stack segment).
Segmento de pila.

 ES = Registro de segmento extra (extra segment).


Segmento de ampliación para zona de datos. Es extraordinariamente útil actuando en
conjunción con
DS: con ambos se puede definir dos zonas de 64 Kb, tan alejadas como se desee en el
espacio de direcciones, entre las que se pueden intercambiar datos.

− Registros punteros de pila:

 SP = Puntero de pila (stack pointer).


Apunta a la cabeza de la pila. Utilizado en las instrucciones de manejo de la pila.

 BP = Puntero base (base pointer).


Es un puntero de base, que apunta a una zona dentro de la pila dedicada al
almacenamiento de datos.
(variables locales y parámetros de las funciones en los programas compilados).

−Registros índices.

 SI = Índice fuente (source index).


Utilizado como registro de índice en ciertos modos de direccionamiento indirecto,
también se emplea para guardar un valor de desplazamiento en operaciones de cadenas.

 DI = Índice destino (destination index).


Se usa en determinados modos de direccionamiento indirecto y para almacenar un
desplazamiento en operaciones con cadenas.

−Puntero de instrucciones o contador de programa:

 IP = Puntero de instrucción (instruction pointer).


Marca el desplazamiento de la instrucción en curso dentro del segmento de
código. Es automáticamente modificado con la lectura de una instrucción.

−Registro de estado o de indicadores (flags).


Es un registro de 16 bits de los cuales 9 son utilizados para indicar diversas
situaciones durante la ejecución de un programa. Los bits 0, 2, 4, 6, 7 y 11 son
indicadores de condición, que reflejan los resultados
de operaciones del programa; los bits del 8 al 10 son indicadores de control y el resto no
se utilizan. Estos
indicadores pueden ser comprobados por las instrucciones de salto condicional, lo que
permite variar el flujo secuencial del programa según el resultado de las operaciones.
Conclusión
En la realización del trabajo como tal se logró ampliar el conocimiento sobre los los
métodos de conversión y los registros de un procesador 8086.
Se logró realizar las conversiones de los sistemas decimal binario hexadecimal etc.
Conocer las características del microprocesador 8086 y como está compuesto sus ventajas y
desventajas de igual manera sobre las Características de las arquitecturas RISC y SISC
poder conocer cada uno de sus aspectos.
Referencias bibliograficas

Andonegui Zabala, M. (2007). El sistema numérico decimal, (P.


5-29). Caracas, Corporación Andina de Fomento. Recuperado
de https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/94592?
page=5

Arquitecturas de Microprocesadores. (2005). Ediciones


Paraninfo, S.A. (P. 122-127).  Recuperado
de https://link.gale.com/apps/doc/CX4054500068/GVRL?
u=unad&sid=GVRL&xid=518a42b5

También podría gustarte