Está en la página 1de 45

MICROPROCESADORES

La CPU 8086\8088

HISTORIA
-CISC Complex instruccion set computer -RISC Reduced instruccion set computer

-1978 Intel lanza al mercado 8086

- 8088 bus externo de 8 bits

- 8088 fue elegido para desarrollar Personal Computer

Dos maneras de hacer el proceso de informacin ms rpido:


- Incrementar la frecuencia - Cambiar la arquitectura interna Dos secciones: Unidad de Interface: BUI - Acceso a memoria y perifricos

PIPELINING

Unidad de Ejecucin: EU - Ejecucin de instrucciones

ARQUITECTURA

REGISTROS
AX=Registro acumulador, dividido en AH y AL (8 bits cada uno).

BX=Registro base, dividido en BH y BL.


- registro base de propsito similar (se usa para direccionamiento indirecto) - versin ms potente del par de registros HL de los procesadores anteriores.

CX = Registro contador, dividido en CH y CL.


- como contador en bucles (instruccin LOOP), - operaciones con cadenas, - desplazamientos y rotaciones (usando el registro CL en los dos ltimos casos).

DX = Registro de datos, dividido en DH y DL.


- junto con el registro AX en multiplicaciones y divisiones,

- en la instruccin CWD, en IN y OUT


- para direccionamiento indirecto de puertos (el registro DX indica el nmero de puerto de entrada/salida).

REGISTROS
SP = Puntero de pila (no se puede subdividir).
- almacena las direcciones de retorno de subrutinas y los datos temporarios - al introducir (push) un valor en la pila a este registro se le resta dos, - al extraer (pop) un valor de la pila este a registro se le suma dos.

BP = Puntero base (no se puede subdividir).


- para realizar direccionamiento indirecto dentro de la pila.

SI = Puntero ndice (no se puede subdividir)


- puntero fuente para las operaciones con cadenas. - para realizar direccionamiento indirecto.

DI = Puntero destino (no se puede subdividir).


- puntero destino para las operaciones con cadenas. - para realizar direccionamiento indirecto.

REGISTRO DE BANDERAS

Direccionamiento de Localidades de Memoria

El 8086 posee un bus de datos de 16 bits y por tanto manipula cantidades de esta longitud (llamadas palabras). Cada palabra a la que se accede consta de dos bytes, un byte de orden alto o ms significativo y un byte de orden bajo o menos significativo. El sistema almacena en memoria estos bytes de la siguiente manera: el byte menos significativo en la direccin baja de memoria y el byte ms significativo en la direccin alta de memoria

SEGMENTOS DE PROGRAMA
SEGMENTO DE CODIGO:
Contiene instrucciones de lenguaje ensamblador

SEGMENTO DE DATOS:
Almacena informacin (DATOS)

SEGMENTO DE PILA:
Almacena informacin temporalmente

DIRECCIN LGICA Y FSICA


DIRECCIN FISICA:
- Direccin de 20 bits - Rango de 1Mb en RAM o ROM

DIRECCIN DE OFFSET:
- En una localidad de memoria e 64Kb entre 0000H y FFFFH

DIRECCIN LGICA:
- Formada por dos partes: Valor de un segmento

Direccin de OFFSET

SEGMENTO DE CODIGO
- El Up trae intrucciones (Opcodes, operandos) desde el segmento de cdigo - La direccin lgica de una instruccin siempre consiste de CS:IP

La direccin Fsica se obtiene : - Desplazando a la izquierda un dgito hexadecimal del CS - Sumar este al IP (IP=offset) - Enviada por los pienes del Up

Ejemplo: CS= 3422 IP= 1251

SEGMENTO DE DATOS
- La direccin lgica consiste de CS:OFFSET

La direccin Fsica se obtiene : - Desplazando a la izquierda un dgito hexadecimal del DS - Sumar este el OFFSET - Enviada por los pienes del Up

Ejemplo: DS=7123 OFFSET= 4321

PILA
- Usada por la CPU para almacenar informacin temporalmente

- Dos registros principales: SS y SP

- Deben ser cargados antes de las instrucciones que van a usar el stack

- No pueden ser almacenados registros de SEGMENTO y SP

- Seccin de cdigo y de stack estan localizadas en direcciones opuestas

- PUSH y POP de 16 bits

PILA

Ejemplo: Introducimos en la pila los registros AX y BX que contienen FA01H y 35A9H respectivamente. Suponemos que el registro SP contiene 50 bytes.

PUSH AX: Se introduce en la pila AX se decrementa SP y se introduce el dato.

PILA

PUSH BX: Se introduce en la pila BX se decrementa SP y se introduce el dato

POP BX: Se extrae de la pila un dato y se introduce en BX se extrae el dato y se incrementa SP.

TERMINALES EN EL 8086

BIOS y DOS
Subrutinas en BIOS y DOS disponibles a traves de la instruccin INT Similar a una llamada FAR almacena CS:IP en pila Ejecuta la subrutina asociada con esa interrupcin. FORMATO:

INT xx
xx 00H - FFH

Nota: Antes de que las subrutinas sean requeridas, ciertos registros deben tener valores
especficos dependiedo de la funcin que vayan a realizar

INT 10H
Comunicarse con la pantalla del Computador

Manipulacin de texto y grficos


color de caracteres color de fondo

limpiar pantalla
posicin del cursor

Estas funciones son escogidas colocando un


valor especfico en el registro AH

INT 10H funcin 06H : Limpieza de Pantalla


Registros utilizados: AH = funcin

CH = punto de inicio fila


CL = punto de inicio columna DH = punto final fila

DL = punto final columna


MOV AX,0600H MOV BH,07 MOV CX,0000 MOV DX,184F INT 10H punto de inicio (0,0) Punto final (24,79)

INT 10H funcin 02H : Fijar Posicin del cursor


Registros utilizados: AH = funcin

BH = nmero de pgina
DH = fila DL = columna

MOV AH,02H
MOV BH,00 MOV DH,0CH MOV DL,27H INT 10H fila 12 columna 39

INT 10H funcin 03H : Obtener Posicin del cursor


Registros utilizados: AH = funcin

BH = nmero de pgina
* DH = fila * DL = columna

MOV AH,03H
MOV BH,00 INT 10H

* Los valores se obtienen despus de la llamada a interrupcin

INT 10H funcin 00H : Modo de video


Registros utilizados: AH = funcin

AL = modo de video

MOV AH,00H

MOV AL,03H
INT 10H

; modo CGA

AL=03 modo texto (80x25) AL=04 modo graf (320x200) AL=06 modo graf (640x200)

INT 10H funcin 09H : Mostrar caracter # veces


Registros utilizados: AH = funcin

AL = ASCII del carcter


BH = nmero de pgina BL = Formato

CX = # Repeticiones
MOV AX,0930H MOV BX,00F0H MOV CX,200H INT 10H ; 512 repeticiones

INT 10H funcin 0BH : Color


Registros utilizados: AH = funcin

BX = color

MOV AX,0BH

MOV BX,0001H
INT 10H

; background, foreground

B R G B I R G B
Background foreground

INT 10H funcin 0CH : Pxeles


Registros utilizados: AH = funcin

AL = formato ( 1 blanco, 0 negro )


CX = columna ( Coordenada X) DX = fila ( Coordenada Y)

CX = # Repeticiones
MOV AX,0C01H MOV CX,100 MOV DX,50 INT 10H

( X , Y )
( CX , CY )

INT 10H funcin 0FH : Modo actual de video


Registros utilizados: AH = funcin

AL = MODO

MOV AH,OFH
INT 10H

INT 21H
Comunicarse con el teclado del Computador

Estas funciones son escogidas colocando un valor especfico en el registro AH

INT 21H funcin 09H : Cadena de caracteres


Registros utilizados: AH = funcin

* DX = cadena de caracteres

CADENA DB ..................$

MOV AH,09H MOV DX,OFFSET CADENA INT 21H


* Desplega caracteres hasta encontrar el signo de dlar

INT 21H funcin 02H : Simple caracter


Registros utilizados: AH = funcin

DL = caracter

MOV AH,02H
MOV DL,J INT 21H

INT 16H
Interrupcin exclusiva para comunicarse con el teclado del

Computador

Estas funciones son escogidas colocando un valor especfico en el registro AH

INT 16H funcin 01H : Validacin tecla presionada


Registros utilizados: AH = funcin

MOV AH,01H

INT 16H

ZF=0 ; si tecla presionada

ZF=1 ; si tecla no presionada

INT 16H funcin 00H : Reconocimiento tecla presionada


Registros utilizados:
*

AH = valida tecla presionada


AL = cdigo de tecla

MOV AH,00H
INT 16H

INT 33H
Interrupcin para manejo del mouse

Estas funciones son escogidas colocando un valor especfico en el registro AX

INT 33H funcin 00H : Inicializacin del mouse


Registros utilizados: AX = funcin

BX = Nmero de botones del mouse

MOV AX,00H

INT 33H

AX=0 ; Mouse no instalado

AX= FFFFH ; Mouse instalado

INT 33H funcin 01H\02H: Mostrar\ocultar mouse


Registros utilizados: AX = funcin

MOV AX,01H

INT 33H
---------------------------------------------MOV AX,02H INT 33H

INT 33H funcin 03H: Posicin del mouse


Registros utilizados: AX = funcin

CX = Posicin horizontal
DX = Posicin vertical

MOV AX,03H INT 33H

Formato:

Nombre MACRO param1,param2.....

MACROS
ENDM

Pantalla

MACRO cadena

MOV
MOV INT ENDM

AH,09
DX,OFFSET cadena 21H

DESCRIPCION DE PINES 8086/8088

Modo Mnimo

Modo Mximo

Ejemplo Modo Mnimo

Ejemplo Modo Mximo

También podría gustarte