Bit: Digito binario, 0 o 1 Nibble: 4 bits Byte: 8bit Word: 16 bit
ARQUITECTURA El microprocesador es un dispositivo programable. Se trabajara en un modo llamado modo real. La memoria en modo real se encuentra en el primer megabyte del sistema de memoria (entre 00000H y FFFFFH)
MODELO DE PROGRAMACIN
REGISTROS
En este tipo de programacin tenemos registros de 8, 16 y 32 bits, aunque nos concentraremos en lo q es 8 y 16 bits. Los registros dentro del procesador tienen un uso particular, pero uno como programador les puede dar el uso que estime conveniente (aunque hay que tener cuidado con lo que se esta modificando, y adems hay unos registros que no se pueden modificar, pero eso lo veremos mas adelante). Estos registros llamados multipropsito son los siguientes (se explicaran algunas cosas con mas detalle mas adelante)
AX (acumulador): Un registro de 16 bits, que puede ser subdivido en dos registros de 8 bits llamados AH y AL. La letra H o L es debido a que es la parte alta o baja del registro.
El acumulador se utiliza para instrucciones tales como multiplicacin, divisin y algunos ajustes de formato
BX (ndice de base): Registro de 16 bits, con partes alta y baja (BH y BL). En ocasiones contiene la direccin de desplazamiento de una localidad en el sistema de memoria.
CX (contador): Registro de 16 bits, con partes alta y baja (CH y CL). Su finalidad es un contador para distintas funciones. Las instrucciones que usan contador son las instrucciones de cadena repetida (REP/REPE/REPNE); las instrucciones de desplazamiento (shift), las de rotacin (rotate) y las de repeticin LOOP/LOOPD. Las instrucciones de desplazamiento y rotacin ocupan CL, las instrucciones de cadena repetida y loop ocupan CX
DX (datos): Registro de 16 bits, con partes alta y baja (DH y DL). Contiene partes del producto de una multiplicacin o parte del dividendo de una divisin. Tambin es usado para mandar informacin de entrada o salida. (IN/OUT)
BP (apuntador de base): Apunta a una localidad de memoria, para transferencia de datos en memoria.
DI (ndice destino): Direcciona datos del destino de las cadenas para las instrucciones de cadena. Tambin funciona como un registro de propsito general, pero no es divisible.
SI (ndice de fuente): Direcciona datos del origen de las cadenas para instrucciones de cadenas. Tambin puede ser usado como registro de propsito general. No es divisible
Registros de propsitos especficos
IP (apuntador de instrucciones): Direcciona la instruccin siguiente en una seccin de memoria definida como un segmento de cdigo. Es un registro de 16 bits en modo real. El microprocesador utiliza el apuntador de instrucciones para encontrar la siguiente instruccin de un programa ubicado en un segmento
SP (apuntador de pila): Direcciona una zona de la memoria llamada pila. La memoria de pila almacena datos por medio de este apuntador (despus se entrar en detalle)
Registros de segmento: Son registros que generan direcciones de memoria al combinarse con otros registros del procesador. Hay que tener cuidado al manejar estos segmentos, ya que hay ciertas operaciones que no se les puede aplicar (lo veremos mas adelante, en la parte de movimiento de datos)
CS (code segment): El segmento de cdigo es la direccin de memoria que contiene, como su nombre lo dice, el cdigo (programas y procedimientos) utilizado por el microprocesador. En modo real, define el principio de una seccin de 64KB de memoria
DS (data segment): Este segmento contiene la mayora de los datos utilizados por un programa. En este segmento, se accede a los datos por medio de un desplazamiento o a travs del contenido de otros registros con la direccin de desplazamiento. Al igual que CS esta limitado a 64KB
ES (extra segment): Es un segmento adicional utilizado por algunas instrucciones de cadenas para construir el destino de los datos
SS (stack segment): El segmento de pila define el area de memoria utilizada para la pila. El punto de entrada para la pila esta determinado por los registros de este segmento, as como los registros apuntadores de pila. El registro BP tambin direcciona datos dentro del segmento de pila
DIRECCIONAMIENTO DE MEMORIA EN MODO REAL:
La operacin den modo real permite direccionar solamente EL PRIMER MEGABYTE DEL ESPACIO DE MEMORIA. Este megabyte se conoce como sistema de memoria real o memoria convencional
Segmentos y Desplazamientos (segment:offset) : La combinacin de una direccin de segmento y una de desplazamiento hacen posible acceder a una localidad de memoria en modo real. La direccin de segmento esta contenida en un registro de segmento y define la direccin inicial de este Recordar que tienen un largo de 64KB). El microprocesador tiene un conjunto de reglas que aplica a los segmentos siempre que la memoria es direccionada. Estas reglas definen la combinacin de registros de segmento y desplazamiento (segment:offset) Por ejemplo, el registro del segmento de cdigo siempre es usado con el registro apuntador de instruccin. Esto da origen al par CS:IP. Como se dijo anteriormente el CS define el inicio del segmento de cdigo, mientras que IP localiza la siguiente instruccin dentro del segmento de cdigo. Esta combinacin CS:IP localiza la siguiente instruccin que va a ser ejecutada por el procesador. Por ejemplo si CS =1400H e IP=1200H, el procesador lee su siguiente instruccin en la localidad de memoria 14000H+1200H, o 15200H. Otra de las combinaciones es la pila o el stack. Los datos de la pila son consultados a travs del segmento de pila y un apuntador de pila o el mismo segmento de pila o apuntador base. En otras palabras estn dadas por el par SS:SP o SS:BP
Aqu una tabla de las combinaciones predeterminadas de segmentos con desplazamientos (segment:offset) Segmento Desplazamiento propsito especial CS IP Direccin de instruccin SS SP o BP Direccin de pila DS BX, DI, SI, numero de 8 bits, numero de 16 bits Direccin de datos ES DI Direccin de destino de cadenas