You are on page 1of 44

Lenguaje de maquina

Unidad III

Programacin en Lenguaje Ensamblador. Tema:


Bios: Rutinas de Servicios

Objetivo General
Adquirir una slida comprensin del funcionamiento interno de los microprocesadores. Conocer y emplear eficientemente el entorno de programacin del Lenguaje Ensamblador. Elaborar programas a nivel avanzado que permiten manejar eficientemente los recursos del microprocesador

Objetivo Terminal
Implementar correctamente rutinas para el manejo de dispositivos de almacenamiento.

Objetivo Instruccional
Desarrollar aplicaciones que afecten al Sistema Bsico de Entrada y Salida (BIOS)

SEMANA 14_1

PROCESAMIENTO DE LA PANTALLA

Lenguaje de maquina

LA INSTRUCCION INT, PARA LA MAYORIA DE LOS PROPOSITOS MANEJA ENTRADA Y SALIDA. LOS DOS TIPOS DE INTERRUPCIONES TRATADOS AQUI SON LAS FUNCIONES DE INT 10H DEL BIOS Y LAS FUNCIONES DE INT 21H DEL DOS PARA MOSTRAR SALIDAS EN PANTALLA Y ACEPTAR ENTRADAS DESDE EL TECLADO.
FUNCIONES DE INT 10H (BIOS) FUNCIONES DE INT 21H (DOS)

02H Fija del cursor 06H Recorre la pantalla

02H Despliega en pantalla 09H Despliega en pantalla 40H Despliega en pantalla

LA PANTALLA

Lenguaje de maquina

LA PANTALLA ES UNA MALLA DE POSICIONES DIRECCIONABLES, EN LAS CUALES SE PUEDE COLOCAR EL CURSOR.
UBICACIN EN PANTALLA
Esquina superior izquierda Esquina superior derecha Centro de pantalla Esquina inferior izquierda Esquina inferior derecha

FORMATO DECIMAL
RENGLON 00 00 12 24 24 COLUMNA 00 79 39/40 00 79

FORMATO HEXADECIMAL
RENGLON 00H 00H OCH 18H 18H COLUMNA 00H 4FH 27H/28H 00H 4FH

LA PANTALLA

Lenguaje de maquina

EL SISTEMA PROPORCIONA ESPACIO EN LA MEMORIA PARA UN AREA DE DESPLIEGUE DE VIDEO O BUFFER. EL AREA DE DESPLIEGUE MONOCROMATICO INICIA EN LA LOCALIDAD DE BIOS B0000[0]H Y PERMITE UTILIZAR 4K BYTES DE MEMORIA: 2K PARA CARACTERES Y 2K PARA ATRIBUTOS PARA CADA CARCTER, COMO VIDEO INVERSO, INTERMITENCIA, INTENSIDAD Y SUBRAYADO.

COLOCACION DEL CURSOR

Lenguaje de maquina

(EL MODO GRAFICO NO PERMITE EL USO DEL CURSOR)


SE DEBE CARGAR EL NUMERO DE PAGINA (O PANTALLA), POR LO COMUN 0 EN EL REGISTRO BH. EN EL REGISTRO DX EL RENGLON Y COLUMNA REQUERIDA. EJM:
MOV AH , 02H ; FUNCION MOV BH , 00 ; PAG ACTUAL MOV DH , 05 ; RENGLON 5 MOV DL , 12 ; COLUMNA 12 INT 10H ; INTERRUPCION QUE LLAMA AL BIOS

LIMPIAR LA PANTALLA

Lenguaje de maquina

PARA LIMPIAR TODA LA PANTALLA ESPECIFIQUE EN EL RENGLON:COLUMNA (00:00H) Y EN EL RENGLON COLUMNA FINAL (18:4FH)
CARGAR LOS REGISTROS: AH = FUNCION 06H AL = 00H PARA LA PANTALLA COMPLETA BH = NUMERO DEL ATRIBUTO CX = RENGLON:COLUMNA INICIAL DX = RENGLON:COLUMNA FINAL
EL ATRIBUTO 71H ESTABLECE LA PANTALLA EN FONDO BLANCO (7) CON PRIMER PLANO AZUL (1)

LIMPIAR LA PANTALLA

Lenguaje de maquina

PARA LIMPIAR TODA LA PANTALLA ESPECIFIQUE EN EL RENGLON:COLUMNA (00:00H) Y EN EL RENGLON COLUMNA FINAL (18:4FH)
MOV AX , 0600H MOV BH , 71H MOV CX , 0000H MOV DX , 184FH INT 10H ; AH 06 (RECORRIDO), AL 00 (PANTALLA COMPLETA ) ; ATRIBUTO ; BLANCO (7) SOBREA AZUL (1) ; ESQUINA SUPERIOR IZQUIERDA DEL RENGLON: COLUMNA ; ESQUINA INFERIOR DERECHA DEL RENGLON: COLUMNA ; INTERRUPCION QUE LLAMA AL BIOS

MOV AH, O9H; FUNCION LEA DX , CADENA; CADENA A MOSTRAR INT 21H

LIMPIAR LA PANTALLA

Lenguaje de maquina

PARA LIMPIAR TODA LA PANTALLA ESPECIFIQUE EN EL RENGLON:COLUMNA (00:00H) Y EN EL RENGLON COLUMNA FINAL (18:4FH)
MOV BH , 00 ; ATRIBUTO ; BLANCO (7) SOBREA AZUL (1) MOV BL, REAL; ESQUINA SUPERIOR IZQUIERDA DEL RENGLON: COLUMNA MOV CAD [BX], 20H ; ESQUINA INFERIOR DERECHA DEL RENGLON: COLUMNA INT 10H ; INTERRUPCION QUE LLAMA AL BIOS MOV AH, O9H; FUNCION LEA DX , CADENA; CADENA A MOSTRAR INT 21H

LIMPIAR LA PANTALLA
PARA CAPTURAR PR TECLADO UNA CADENA SE DEBE COLOCAR .DATA UNA ESTRUCTURA DE TIPO BYTE

Lenguaje de maquina

CADENA LABEL BYTE; NOMBRE ESTRUCTURA BYTE MAX DB 10 ;CANTIDAD DE CARACTERES MAXIMO A GUARDAR REAL DB ? ;CANTIDAD DE CARACTERES INGRESADOS SIN CONTAR CAD DB 11 DUP ( $ ); CARACTERES INTRODUCIDOS DEL TECLADO
MOV AH, 0AH ; PETICION DE LA FUNCION DE ENTRADA LEA DX, CADENA; CARGA LA DIRECCION DE LA LISTA DE LOS PARAMETROS INT 21H MOV AH, O2H; FUNCION LEA DL , CARACTER; CARACTER A MOSTRAR INT 21H

MOV AH, O9H; FUNCION LEA DX , CADENA; CADENA A MOSTRAR

PROCESAMIENTO AVANZADO DE LA PANTALLA


FUNCIONES DE INT 10H (BIOS) 00H Establece el modo de video 01H Establece el modo de cursor 02H Establece la posicin del cursor

Lenguaje de maquina

FUNCIONES DE INT 10H (BIOS) 0BH Establece la paleta de colores 0CH Escribe el pixel punto 0DH Lee el pxel punto

03H Lee la posicin del cursor


05H Selecciona la pagina activa 06H Recorre la pantalla hacia arriba 07H Recorre la pantalla hacia abajo 08H Lee el atributo o carcter en la posicin del cursor 09H Despliega el atributo o carcter en la posicin del cursor 0AH Despliega el carcter en la posicin del cursor

0EH Escribe en teletipo


11H Genera carcter 12H Selecciona rutina alterna de pantalla 13H Despliega cadena de caracteres 1BH Regresa la informacin de funcionalidad o de estado 1CH Guarda o restaura el estado de video

04H Lee la posicin de la pluma ptica 0FH Obtiene el modo actual de video

ADAPTADORES DE VIDEO

Lenguaje de maquina

MDA HGC CGA

Adaptador de pantalla monocromtica Tarjeta de grficos Hrcules Adaptador de grficos en colores

EGA
MCGA VGA

Adaptador de grficos mejorado


Adaptador de grficos en multicolores (PS/2 modelos 25 y 30) Matriz de grficos de video

ADAPTADORES DE VIDEO

Lenguaje de maquina

EL ADAPTADOR DE VIDEO CONSTA DE TRES PARTES: EL CONTROLADOR DE VIDEO. GENERA LAS SEALES DE RASTREO DEL MONITOR PARA EL MODO SELECCIONADO, TEXTO O GRAFICO. EL VIDEO DE BIOS. ACTUA COMO UN INTERFAZ CON EL ADAPTADOR DE VIDEO, CONTIENE RUTINAS COMO PARA ESTABLECER EL CURSOR Y DESPLEGAR CARACTERES. EL AREA DE DESPLIEGUE. CONTIENE LA INFORMACION QUE EL MONITOR VA A MOSTRAR. LAS INTERRUPCIONES QUE MANEJAN EL DESPLIEGUE EN PANTALLA DE FORMA DIRECTA TRANSFIEREN A ESTA AREA SUS DATOS. LAS LOCALIDADES DEL ADAPTADOR DE VIDEO DEPENDEN DE LOS MODOS DE VIDEO QUE SE ESTEN USANDO.

DIRECCIONES DE INICIO PARA ADAPTADORES DE VIDEO

Lenguaje de maquina

A000:[0]

B000:[0] B100:[0]

Utilizada para descripcin de fuentes cuando esta en modo de texto y para grficos de alta resolucin para EGA, MCGA, VGA Modo de texto monocromtico para MDA, EGA, VGA Para HCG

B800:[0]

Modos de texto para CGA, MCGA, EGA y VGA y modos grficos para CGA, EGA, MCGA y VGA.

ESPECIFICACIONES DEL MODO DE VIDEO

Lenguaje de maquina

LA FUNCION 00H DE INT 10H DE BIOS, PUEDE DESIGNAR EL MODO PARA EL PROGRAMA QUE SE ESTA EJECUTANDO ACTUALMENTE O PUEDE CONMUTAR ENTRE TEXTO Y GRAFICO.
PARA DESIGNAR UN NUEVO MODO: MOV AH , 00H ; PETICION PARA DESIGNAR EL MODO MOV AL , 03H ; TEXTO O ESTANDAR A COLOR 80 X 25 INT 10H ; LLAMA AL BIOS PARA MONITORES DESCONOCIDOS, PUEDE UTILIZAR INT 10H Y FUNCION 0FH, LA CUAL REGRESA EN AL EL MODO DE VIDEO ACTUAL.

MODO DE TEXTO

Lenguaje de maquina

EL MODO DE TEXTO SE UTILIZA PARA EL DESPLIEGUE NORMAL EN LA PANTALLA DE CARACTERES ASCII


MODO 00 TAMAO 25 FILAS , MONO , 40 COLUMNAS TIPO MONO
ADAPTADOR CGA EGA MCGA VGA CGA EGA MCGA VGA CGA EGA MCGA VGA CGA EGA MCGA VGA MDA EGA VGA

RESOLUCION
320 X 200 320 X 350 320 X 400 360 X 400 320 X 200 320 X 350 320 X 400 360 X 400 640 X 200 640 X 350 640 X 400 720 X 400 640 X 200 640 X 350 640 X 400 720 X 400 720 X 350 720 X 350 720 X 400

COLORES

01

25 FILAS , COLOR , 40 COLUMNAS

COLOR

16 16 DE 64 16 DE 262,144 16 DE 262,144

02

25 FILAS , MONO , 80 COLUMNAS

MONO

03

25 FILAS , COLOR , 80 COLUMNAS

COLOR

16 16 DE 64 16 DE 262,144 16 DE 262,144

07

25 FILAS , MONO , 80 COLUMNAS

MONO

MODO DE TEXTO: Byte de atributo

Lenguaje de maquina

UN BYTE DE ATRIBUTO EN MODO DE TEXTO DETERMINA LAS CARACTERISTICAS DE CADA CARCTER MOSTRADO. CUANDO UN PROGRAMA ESTABLECE UN ATRIBUTO, PERMANECE ACTIVADO; ESTO ES , TODOS LOS CARACTERES SUBSECUENTES DESPLEGADOS TIENEN EL MISMO ATRIBUTO HASTA QUE OTRA OPERACIN LO CAMBIE. FORMATO:
INTER MITE NCIA FONDO PANTALLA INTEN SIDA D CARCTER DESPLEGADO

BL

LOS BITS RGB: 000 ES NEGRO Y 111 ES BLANCO

MODO DE TEXTO: Despliegue monocromtico

Lenguaje de maquina

PARA UN MONITOR MONOCROMATICO, EL BIT 0 ESTABLECE EL ATRIBUTO DE SUBRAYADO


COMBINACIONES:
FONDO FRENTE CARACTERISTICAS FONDO
BL NEGRO NEGRO NEGRO NEGRO BLANCO BLANCO NEGRO BLANCO BLANCO BLANCO NEGRO NEGRO NO DESPLIEGA NORMAL INTERMITENTE INTENSO VIDEO INVERSO INVERSO, INTERMITENTE SUBRAYADO 0 0 1 0 0 1 0 R 0 0 0 0 1 1 0 G 0 0 0 0 1 1 0 B 0 0 0 0 1 1 0

PRIMER PLANO
I 0 0 0 1 0 0 0 R 0 1 1 1 0 0 0 G 0 1 1 1 0 0 0 B 0 1 1 1 0 0 1

HEX

00H 07H 87H 0FH 70H F0H 01H

MODO DE TEXTO: Despliegue a color COMBINACIONES:


COLOR
NEGRO AZUL 0 0

Lenguaje de maquina

I
0 0

R
0 0

G
0 1

COLOR
GRIS AZUL CLARO 1 1

I
0 0

R
0 0

B
0 1

VERDE
CIAN ROJO MAGENTA CAF BLANCO

0
0 0 0 0 0

0
0 1 1 1 1

1
1 0 0 1 1

0
1 0 1 0 1

VERDE CLARO
CIAN CLARO ROJO CLARO MAGENTA CLARO AMARILLO BLANCO BRILLANTE

1
1 1 1 1 1

0
0 1 1 1 1

1
1 0 0 1 1

0
1 0 1 0 1

PAGINAS DE PANTALLA

Lenguaje de maquina

LOS MODOS DE TEXTO LE PERMITEN ALMACENAR DATOS EN MEMORIA DE VIDEO EN PAGINAS. LOS NUMEROS DE PAGINA SON DESDE 0 HASTA 3 PARA EL MODO NORMAL DE 80 COLUMNAS ( Y 0 HASTA 7 PARA LAS DE 40 COLS). EN MODO DE 80 COLS, LAS DIRECCIONES DE INICIO SON:
PAGINA PAGINA PAGINA PAGINA 0 1 2 3 A A A A PARTIR PARTIR PARTIR PARTIR DE DE DE DE B800:[0] B900:[0] BA00:[0] BB00:[0]

SOLO SE PUEDE DESPLEGAR UNA PAGINA A LA VEZ.

PAGINAS DE PANTALLA

Lenguaje de maquina

CADA CARCTER QUE SE MUESTRA EN LA PANTALLA NECESITAN DOS BYTES DE MEMORIA: UN BYTE PARA EL CARCTER Y UN SEGUNDO BYTE PARA SU ATRIBUTO. DE ESTA FORMA UNA PAGINA COMPLETA DE CARACTERES, PARA 80 COLUMNAS Y 25 LINEAS, SE NECESITA 80 X 25 X 2 = 4000 BYTES. LA CANTIDAD DE MEMORIA REALMENTE ASIGNADA A CAA PAGINA ES 4K O 4096 BYTES, ASI QUE DESPUES DE CADA PAGINA LA SIGUEN 96 BYTES NO UTILIZADOS.

INTERRUPCION 10H DEL BIOS PARA EL MODO TEXTO

Lenguaje de maquina

LA INTERRUPCION CONSERVA EL CONTENIDO DE LOS REGISTROS BX, CD, DX, DI, SI y BP, PERO NO EL AX.

INTERRUPCION 10H DEL BIOS PARA EL MODO TEXTO

Lenguaje de maquina

MODO DE VIDEO : 00h SE REQUIERE: Cdigo 00h en AH Cdigo de modo en AL ; 03 para color ; 07 para monocromtico
TAMAO DEL CURSOR : 01h SE REQUIERE: CH (Bits 4-0) = Parte superior del cursor CL (Bits 4-0) = Parte inferior del cursor PARA AJUSTAR EL TAMANO DEL CURSOR ENTRE LA PARTE SUPERIOR Y LA INFERIOR: 0:14 (CH:CL)

INTERRUPCION 10H DEL BIOS PARA EL MODO TEXTO

Lenguaje de maquina

ESTABLECE POSICION DEL CURSOR : 02h SE REQUIERE: AH = 02h BH = Numero de pagina ( 0,1,2,3) DH = Rengln DL = Columna

INTERRUPCION 10H DEL BIOS PARA EL MODO TEXTO

Lenguaje de maquina

LEE POSICION DEL CURSOR : 03h SE REQUIERE: AH = 03h BH = 0h ; MODO NORMAL

DEVUELVE: AX y BX SIN CAMBIOS CH = LINEA INICIAL CURSOR CL = LINEA FINAL CURSOR DH = RENGLON DL = COLUMNA

INTERRUPCION 10H DEL BIOS PARA EL MODO TEXTO

Lenguaje de maquina

SELECCIONAR PAGINA ACTIVA : 05h SE REQUIERE: AH = 05h AL = Numero de pagina ( 0,1,2,3)

INTERRUPCION 10H DEL BIOS PARA EL MODO TEXTO

Lenguaje de maquina

RECORRER HACIA ARRIBA LA PANTALLA : 06h SE REQUIERE: AH = 06h AL = Numero de lneas o cero para toda la pantalla
BH = ATRIBUTO

CX = Renglon:Columna Inicial DX = Renglon:Columna Final

INTERRUPCION 10H DEL BIOS PARA EL MODO TEXTO

Lenguaje de maquina

RECORRER HACIA ABAJO LA PANTALLA : 07h SE REQUIERE: AH = 07h AL = Numero de lneas o cero para toda la pantalla
BH = ATRIBUTO

CX = Renglon:Columna Inicial DX = Renglon:Columna Final

INTERRUPCION 10H DEL BIOS PARA EL MODO TEXTO

Lenguaje de maquina

LEER ATRIBUTO O CARACTER : 08h SE REQUIERE: AH = 08h DEVUELVE: AL = CARCTER AH = ATRIBUTO


BH = NUMERO DE PAGINA

PARA UN CARCTER NO ASCII, DEVUELVE 00H

INTERRUPCION 10H DEL BIOS PARA EL MODO TEXTO

Lenguaje de maquina

DESPLEGAR ATRIBUTO O CARACTER : 09h SE REQUIERE: AH = 09h AL = UN CARCTER ASCII

BH = NUMERO DE PAGINA BL = ATRIBUTO CX = NUMERO DE VECES QUE LA OPERACIN DESPLIEGA DE MANERA REPETIDA EL CARCTER QUE ESTA EN AL.

INTERRUPCION 10H DEL BIOS PARA EL MODO TEXTO

Lenguaje de maquina

DESPLEGAR UN CARACTER : 0Ah SE REQUIERE: AH = 0Ah AL = UN CARCTER ASCII

BH = NUMERO DE PAGINA CX = NUMERO DE VECES QUE LA OPERACIN DESPLIEGA DE MANERA REPETIDA EL CARCTER QUE ESTA EN AL.

ESTA FUNCION UTILIZA EL ATRIBUTO ACTUAL

INTERRUPCION 10H DEL BIOS PARA EL MODO TEXTO

Lenguaje de maquina

ESCRIBIR EN TELETIPO : 0Eh SE REQUIERE: AH = 0Eh AL = UN CARCTER ASCII

BH = NUMERO DE PAGINA BL = COLOR DEL PRIMER PLANO (MODO GRAFICO).

INTERRUPCION 10H DEL BIOS PARA EL MODO TEXTO

Lenguaje de maquina

OBTENER MODO DE VIDEO : 0Fh SE REQUIERE: AH = 0Fh DEVUELVE: AL = MODO ACTUAL DE VIDEO
AH = CARACTERES POR LINEA BH = NUMERO DE PAGINA ACTUAL

INTERRUPCION 10H DEL BIOS PARA EL MODO TEXTO

Lenguaje de maquina

DESPLIEGA UNA CADENA DE CARACTERES : 13h SE REQUIERE:


AH = 13h AL = SUBFUNCION BH = NUMERO DE PAGINA BL = ATRIBUTO BP = DIRECCION DE LA CADENA CX = LONGITUD DE LA CADENA DX = POSICION RELATIVA INICIO PANTALLA 00 Despliega el atributo y la cadena; no avanza el cursor 01 Despliega el atributo y la cadena; avanza el cursor 02 Despliega el carcter y despus el atributo; no avanza cursor 03 Despliega el carcter y despus el atributo; avanza el cursor

SUBFUNCION:

MODO GRAFICO
MODO
04 05 06 0D 0E 0F 10 11 12 13

Lenguaje de maquina

TIPO
COLOR MONO MONO COLOR COLOR MONO COLOR COLOR COLOR COLOR

ADAPTADOR
CGA,EGA,MCGA,VGA CGA,EGA,MCGA,VGA CGA,EGA,MCGA,VGA EGA,VGA EGA,VGA EGA,VGA EGA,VGA MCGA, VGA VGA MCGA,VGA

RESOLUCION
320 X 200 320 X 200 640 X 200 320 X 200 640 X 200 640 X 350 640 X 350 640 X 400 640 X 400 320 X 200

COLORES
4

16 16

16 2 DE 262,144 2 DE 262,14416 256 DE 262,144

MODO GRAFICO: Pixeles

Lenguaje de maquina

EL MODO GRAFICO UTILIZA PIXELES PARA GENERAR PATRONES EN COLOR. CADA BYTE REPRESENTA 4 PIXELES. FORMATO:
Byte

C1 0

C0

C1 1

C0

C1 2

C0

C1 3

C0

Pixel

NRO

C1

C0

PALETA 0

PALETA 1

0 1 2 3

0 0 1 1

0 1 0 1

FONDO VERDE ROJO CAFE

FONDO CIAN MAGENTA BLANCO

INTERRUPCION 10H DEL BIOS PARA EL MODO GRAFICO

Lenguaje de maquina

LEE POSICION PLUMA OPTICA : 04h SE REQUIERE: AH = 04h DEVUELVE: AH = 0 SI EL ESTADO DE FUNCIONANDO Y 1 SI NO ESTA
DX = RENGLON EN DH Y COLUMNA EN DL CH/BX = POSICION DE PIXEL, CON LINEA (HORIZONTAL) DE LA MALLA EN EL BH Y COLUMNA O PUNTO EN EL BX

INTERRUPCION 10H DEL BIOS PARA EL MODO GRAFICO

Lenguaje de maquina

ESTABLECE UNA PALETA DE COLORES : 0Bh SE REQUIERE: AH = 0Bh

BH = 00 SELECCIONA EL COLOR DE FONDO, EN DONDE BL CONTIENE EL NUMERO DEL COLOR EN LOS BITS 0-3 (CUALQUIERA 16 COLORES) BH = 01 SELECCIONA LA PALETA PARA GRAFICOS, EN DONDE BL CONTIENE LA PALETA (0 1)

INTERRUPCION 10H DEL BIOS PARA EL MODO GRAFICO

Lenguaje de maquina

ESCRIBE UN PIXEL PUNTO : 0Ch SE REQUIERE: AH = 0CH AL = COLOR DEL PIXEL BH = NUMERO DE PAGINA CX = COLUMNA DX = RENGLON

INTERRUPCION 10H DEL BIOS PARA EL MODO GRAFICO

Lenguaje de maquina

LEE UN PIXEL PUNTO : 0Dh SE REQUIERE: AH = 0Dh BH = NUMERO DE PAGINA CX = COLUMNA DX = RENGLON DEVUELVE: AL = COLOR DEL PIXEL

DETERMINACION DEL TIPO DE ADAPTADOR DE VIDEO

Lenguaje de maquina

DETERMINAR SI ESTA INSTALADO VGA: 1Ah SE REQUIERE: AH = 1Ah AL = 0 DEVUELVE: AL = 1AH SI ES VGA

You might also like