You are on page 1of 3

Ayudantia nº 1 Microprocesadores

Profesor: David Velasco
Ayudante: Francisco Pizarro
CONCEPTOS BASICOS

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 PROGRAMACIÓN

REGISTROS

En este tipo de programación 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 además hay unos
registros que no se pueden modificar, pero eso lo veremos mas adelante). Estos registros
llamados “multipropósito” 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 multiplicación, división 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 dirección 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 rotación (rotate) y las de repetición LOOP/LOOPD.
Las instrucciones de desplazamiento y rotación 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 multiplicación o parte del dividendo de una división. También es usado
para mandar información 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. También funciona como un registro de propósito general, pero no es
divisible.

SI (índice de fuente): Direcciona datos del origen de las cadenas para instrucciones de
cadenas. También puede ser usado como registro de propósito general. No es divisible

Registros de propósitos específicos

IP (apuntador de instrucciones): Direcciona la instrucción siguiente en una sección de
memoria definida como un segmento de código. Es un registro de 16 bits en modo real.
El microprocesador utiliza el apuntador de instrucciones para encontrar la siguiente
instrucción 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 (después 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 código es la dirección de memoria que contiene,
como su nombre lo dice, el código (programas y procedimientos) utilizado por el
microprocesador. En modo real, define el principio de una sección de 64KB de memoria

DS (data segment): Este segmento contiene la mayoría de los datos utilizados por un
programa. En este segmento, se accede a los datos por medio de un desplazamiento o a
través del contenido de otros registros con la dirección 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 también direcciona
datos dentro del segmento de pila






DIRECCIONAMIENTO DE MEMORIA EN MODO REAL:

La operación 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 combinación de una dirección de segmento y una de desplazamiento hacen posible
acceder a una localidad de memoria en modo real. La dirección de segmento esta
contenida en un registro de segmento y define la dirección 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 combinación de registros de
segmento y desplazamiento (segment:offset)
Por ejemplo, el registro del segmento de código siempre es usado con el registro
apuntador de instrucción. Esto da origen al par CS:IP. Como se dijo anteriormente el
CS define el inicio del segmento de código, mientras que IP localiza la siguiente
instrucción dentro del segmento de código. Esta combinación CS:IP localiza la
siguiente instrucción que va a ser ejecutada por el procesador.
Por ejemplo si CS =1400H e IP=1200H, el procesador lee su siguiente instrucción 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
través del segmento de pila y un apuntador de pila o el mismo segmento de pila o
apuntador base. En otras palabras están dadas por el par SS:SP o SS:BP

Aquí una tabla de las combinaciones predeterminadas de segmentos con
desplazamientos (segment:offset)
Segmento Desplazamiento propósito especial
CS IP Dirección de instrucción
SS SP o BP Dirección de pila
DS BX, DI, SI, numero de 8
bits, numero de 16 bits
Dirección de datos
ES DI Dirección de destino de
cadenas