Dentro de los componentes bsicos del hardware, tenemos:
Unidad de Salida (Monitor o Impresora) Unidad de Entrada (Teclado, Scanner, Lapiz Optico, Mouse) CPU ( ALU, UC, Registros) Memoria (ROM y RAM)
Todos estos dispositivos, estn conectados mediante buses:
Bus de datos La CPU necesita interactuar de alguna manera con su entorno (memoria y puertos). Esto lo realiza mediante un conjunto de lneas paralelas llamadas bus externo de datos. El tamao de dicho bus, impone un lmite a la cantidad de informacin que puede ser transmitida en una sola operacin. Slo se puede transmitir un bit por lnea simultneamente. A este proceso de transmisin se le conoce como un ciclo de bus. Este bus tiene relacin con la velocidad de transferencia dentro de la PC, los procesadores tienen diferentes longitudes (en bits) para el bus externo de datos. Si para transferir 8 bits de informacin, se requiere un ciclo de bus (tomando en cuenta que el tamao del bus es de 8 bits), para transferir 16 o 32 tomar el doble o el triple de tiempo. Es en este punto donde se puede apreciar una de las formas que influyen sobre la velocidad total de operacin de la PC (a mayor anchura de bus, mayor velocidad de transferencia). Los procesadores 386dx y 486 tienen una velocidad del doble en relacin al 8086 (debido a que en ambos la longitud del bus externo es de 32 bits, mientras que en el 8086 es de 16).
Bus de direcciones El bus de datos se usa para permitir que la CPU pueda interactuar con su mundo exterior (intercambiar datos con la memoria y los puertos). Sin embargo, para poder accesar dichas localidades de memoria es necesario generar una direccin. Dicha direccin es generada por la CPU y puesta en otro bus llamado bus de direcciones. El tamao del bus de direcciones determina el mximo de memoria accesible; el bus del 8086 tiene un bus de direcciones de 20 bits, por consiguiente, tiene la capacidad de accesar hasta 2 a la 20 (1 048 576 o 1 MB) diferentes localidades de memoria. Por su parte el 80486 - con un bus de direcciones de 32 bits - tiene capacidad para accesar 2 a la 32 (4 249 967 296 o 4 GB) diferentes localidades de memoria.
Tamao del conjunto de instrucciones
Se le llama conjunto de instrucciones a la cantidad de instrucciones validas que puede ejecutar la CPU. Generalmente se tienen dos categoras de instrucciones, dependiendo de la CPU diseada. La primera se denomina RISC (Reduced Instruction Set Computer; Computadora con un conjunto reducido de instrucciones). Este tipo de CPU est diseado para ejecutar un conjunto de instrucciones muy pequeo, y deja la carga de lo que se considera instrucciones de alto nivel al programador. Un ejemplo de tales instrucciones de alto nivel, sera la multiplicacin de dos operandos en una sola instruccin (MUL AX, BX). En el caso de la CPU tipo RISC, el programador carga con la tarea de implementar la instruccin anterior usando instrucciones de ms bajo nivel proporcionadas por la misma CPU. Estas CPU permiten que la misma CPU sea optimizada va hardware y le dan la capacidad de ejecutar las instrucciones de su repertorio en forma ms eficiente y rpida. La familia 80x86 est formada por procesadores tipo CISC (Complex Instruction Set Computer: Computadora con un Conjunto Complejo de Instrucciones), cuya orientacin es ms bien la de ejecutar instrucciones de alto nivel.
Familias de procesadores
Caractersticas 8086 8088 0286 386sx 386dx 486 Longitud del bus de datos medido en bits 8 16 16 16 32 32 Tamao de los registros en bits 16 16 16 32 32 32 Bus de direccionamiento de memoria en bits 20 20 24 32 32 32 Mximo de memoria que puede direccionar en MB 1 1 16 16 4GB 4GB Conjunto de instrucciones ejecutables 90 90 113 141 141 147
1.7 La CPU y sus registros El 8086 tiene 14 registros de 16 bits que sirven para llevar el control de todo lo que sucede dentro de la PC. Dichos registros se dividen en categoras de acuerdo con su actividad preponderante. Existen cuatro registros de uso general, dos registros de apuntadores, dos registros ndice, cuatro registros de segmento, el registro apuntador de instrucciones, y el registro de banderas.
Los primeros cuatro registros AX, BX, CX y DX son registros de uso general y se pueden usar tambin como registros de 8 bits. Es decir, AX, se puede dividir en AH y AL (AH es el byte alto - High- y AL es el byte bajo -Low-). Lo mismo es aplicable a los otros tres (BX en B y BL, CX en CH y CL, y DX en DH y DL). Como lo mostr la figura anterior. Estos son los nicos registros que pueden usarse de modo dual (8 o 16 bits). En la practica, los regustros de la CPU generalmente son conocidos por sus nombres propios. AX Acumulador BX Registro base CX Registro contador DX Registro de datos DS Registro del segmento de datos ES Registro del segmento extra SS Registro del segmento de pila CS Registro del segmento de cdigo BP Registro de apuntadores base SI Registro ndice fuente DI Registro ndice destino SP Registro del apuntador de la pila IP Registro de apuntador de siguiente instruccin F Registro de banderas
Principales usos de los registros Registros de uso general AX Enviar o recibir datos de puertos y para multiplicacin y divisin, en este registro debe guardarse un operando. BX Es para calcular direcciones de memoria CX Contador de ciclos DX Para guardar direcciones de los puertos Registros Indice SI, DI Se usan principalmente para las operaciones de cadena o para el paso de parmetros Registros Apuntadores BP, SP Se utiliza para manipular la informacin que se encuentre en la pila, SP siempre apunta al tope Registros de segmento CS, DS, ES, SS Se utilizan para guardar el valor de un segmento en cualquiera de los 4 registros anteriores CS Guarda el cdigo de un programa DS Guarda los datos ES Guarda los datos SS Guarda las direcciones de la pila Apuntador de instrucciones IP Apunta siempre a la siguiente instruccin Banderas El significado de todas las banderas apagadas NV UP DI PL NZ NA PO NC Todas las banderas prendidas OV DN EI NG ZR AC PE CY Significado de los bits: Overflow NV =no hay desbordamiento OV =s lo hay Direction UP =hacia adelante DN =hacia atrs Interrupt DI =desactivadas EI =activadas Sign PL =positivo NG =negativo Zero NZ =no es cero ZR =s lo es Auxiliary Carry NA =no hay acarreo auxiliar AC =hay acarreo auxiliar Parity PO =paridad non PE =paridad par Carry NC =no hay acarreo; CY =S lo hay El registro de las banderas, es de 16 bits, pero no todos los bits se usan. CF Carry Flag Indica si en alguna operacin hubo acarreo, o no, si hubo valdra 1 y si hay nmeros impares de 1 valra 0 PF Parity Flag Indica si en el resultado hay un nmero par de nmeros 1 valdra 1 y si hay nmeros impares de 1 valdra 0 AF Auxiliary Carry Flag Indica si hubo acarreo del bit 3 al 4 pero en BCD AF=1 y si no AF=0 ZF Zero Flag Indica si el resultado de una operacin es cero ZF=1 y si el resultado es diferente de 0 la bandera ZF=0 SF Sign Flag determina si el resultado es positivo o negativo, SF=0 si el nmero es positivo, SF=1 si el nmero es negativo. TF Trap Flag Si TF=0 el programa sigue corriendo hasta que encuentre una instruccin el MPU y le indique que se detenga y si TF=1 el programa se ejecuta instruccin por instruccin. IF Interrupt Flag si IF=0 y un perifrico le enva una seal la bandera no le hace caso a la interrupcin y continua su corrida el programa y si IF=1 si le hace caso a la seal. Esta bandera toma en cuenta las interrupciones de cualquier perifrico. DF Direction Flag solo se utiliza para las operaciones de cadena, si DF=0 cada vez que se copie un byte, el apuntador se incrementa y si DF=1, cada vez que se copie un byte, el apuntador se decrementa. OF Overflow Flag si en una operacin hay un sobreflujo OF=1 y cuando no hay OF=0.