Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
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
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.
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)
SISTEMA DECIMAL
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
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
6 3 7
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.
Compuerta NOT
En la compuerta NOT, el estado de la salida es inversa a la entrada. Evidentemente, una
negación.
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
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.
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.
DX = Datos.
− 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.
−Registros índices.