Sunteți pe pagina 1din 10

PROCESAMIENTO EN PANTALLA Y TECLADO (BÁSICO)

FUNCION 02h INTERRUPCION 10h


COLOCACION DEL CURSOR MODO TEXTO

MOV AH,02h ; petición para colocar el cursor


MOV BH,00 ; Número de página activa 0
MOV DH,05 ; Renglón 05
MOV DL,12 ; Columna 12
INT 10h ; interrupción que llama al BIOS

FUNCION 06h INTERRUPCION 10h


RECORRIDO DE PANTALLA, (limpiar área de pantalla)

MOV AH,06h ; petición para recorrido de pantalla


MOV AL,00 ; para recorrido completo
MOV BH,71h ; Número de atributo fondo (7) y texto (1)
MOV CX,0000h ; Renglón 00 y columna 00
MOV DX,184Fh ; Renglón 24 y columna 79
INT 10h ; interrupción que llama al BIOS

FUNCION 09h INTERRUPCION 21h


DESPLIEGUE DE CARACTERES EN PANTALLA

MENSAJE DB ‘UNIVERSIDAD NACIONAL’, ‘$’


.............
MOV AH,09h ; Petición para desplegar
LEA DX,MENSAJE ; Carga el desplazamiento del mensaje
INT 21h ; Llama al DOS

FUNCION 0Ah INTERRUPCION 21h


ENTRADA DESDE TECLADO Y ALMACENAJE EN MEMORIA DE CADENA DE
CARACTERES

ETIQUETA LABEL BYTE ;inicio de la lista de parámetros


MAXIMO DB 20
LONGIT DB ?
NOMBRE DB 20 DUP(?)
............

MOV AH,0Ah ; Petición de la función de entrada


LEA DX,ETIQUETA ; Carga el desplazamiento de la etiqueta
INT 21h ; Llama al DOS

1
FUNCION 02h INTERRUPCION 21h
DESPLEGADO DE CARACTER EN PANTALLA

MOV AH,02h ; función para desplegar un caracter


MOV DL,Char ; caracter desplegado en pantalla
INT 21h ; Llama al DOS

Ejemplo:

CADENA DB ‘INGENIERIA DE SISTEMAS’,13


.................

MOV CX,25
LEA BX,CADENA
MOV AH,02h
LAZ: MOV DL,[BX+DI]
INT 21h
INC DI
LOOP LAZ

PROCESAMIENTO DE PANTALLA.

FUNCION 00h INTERRUPCION 10h


ESTABLECE MODO DE VIDEO

MOV AH,00h ; función para establecer modo de video


MOV AL,03 ; Modo texto a color (ver tabla adicional)
INT 10h ; Llama al BIOS

FUNCION 01h INTERRUPCION 10h


ESTABLECE TAMAÑO DE CURSOR

MOV AH,01h ; petición para designar tamaño de cursor


MOV CH,00 ; línea inicial de rastreo
MOV CL,13 ; línea final
INT 10h ; Llama al BIOS

FUNCION 03h INTERRUPCION 10h


LEE LA POSICIÓN DEL CURSOR

MOV AH,03h ; petición para leer la posición de cursor


MOV BH,00 ; Número de página activa 0
INT 10h ; Llama al BIOS
.............................
devuelve : CX = Línea inicial y final de Rastreo de cursor(CH,CL)
DX = Renglón y columna actual del cursor(DH,DL)

2
FUNCION 05h INTERRUPCION 10h
SELECCIÓN DE LA PAGINA ACTIVA (para los modos de vídeo 0-3)

MOV AH,05h ; petición de página activa


MOV AL,00 ; Número de página
INT 10h ; Llama al BIOS

FUNCION 07h INTERRUPCION 10h


RECORRER HACIA ABAJO LA PANTALLA, (limpiar área de pantalla)

MOV AH,07h ; petición para recorrido de pantalla


MOV AL,00 ; para recorrido completo
MOV BH,71h ; Número de atributo fondo (7) y texto (1)
MOV CX,0000h ; Renglón 00 y columna 00 inicial
MOV DX,184Fh ; Renglón 24 y columna 79 final
INT 10h ; interrupción que llama al BIOS

FUNCION 08h INTERRUPCION 10h


LEER ATRIBUTO O CARACTER EN LA POSICIÓN DEL CURSOR

MOV AH,08h ;
MOV BH,00 ; Número de página 0 (normal)
INT 10h ; Llama al BIOS
Regresa en el registro AL:caracter leido y en AH:atributo
En modo gráfico regresa 00h para un caracter no ASCII.

FUNCION 09h INTERRUPCION 10h


DESPLEGAR UN ATRIBUTO O CARACTER EN LA POSICIÓN DEL CURSOR

MOV AH,09h ; petición de despliegue


MOV AL,’*’ ; caracter que se despliega
MOV BH,0 ; página número 0
MOV BL,61h ; atributo color fondo y texto
MOV CX,20 ; despliega veinte caracteres *
INT 10h ; Llama al BIOS

FUNCION 0Ah INTERRUPCION 10h


DESPLEGAR UN CARACTER EN LA POSICION DEL CURSOR (con el atributo
actual)

MOV AH,0Ah ; petición de despliegue


MOV AL,’*’ ; caracter que se despliega
MOV BH,0 ; página número 0
MOV CX,20 ; despliega veinte caracteres *
INT 10h ; Llama al BIOS

3
FUNCION 0Fh INTERRUPCION 10h
OBTENER EL MODO ACTUAL DE VIDEO

MOV AH,0Fh ; petición de obtención de modo de vídeo


INT 10h ; Llama al BIOS
..................
regresa en AL= Modo actual de video
AH= Caracteres por línea (20,40 u 80, en donde 50H-80)
BH= Número de página actual

FUNCION 13h INTERRUPCION 10h


DESPLIEGA UNA CADENA DE CARACTERES

CADENA DB ‘cadena de caracteres a desplegar’


..............................................
MOV AH,13h ; petición de despliegue de cadena
MOV AL,01 ; despliega atributo y cadena, avanza cursor
MOV BH,0 ; página número 0
MOV BL,61h ; atributo color fondo y texto
LEA BP,CADENA ; obtiene el desplazamiento de CADENA
MOV CX,20 ; despliega veinte caracteres del desplazamiento
MOV DX,0509h ; posición relativa de inicio
INT 10h ; Llama al BIOS

4
MODO GRAFICO
FUNCION 00h INTERRUPCION 10h
ESTABLECE MODO DE VIDEO
MOV AH,00h ; función para establecer modo de video
MOV AL,12h ; modo gráfico resolución 640x480
INT 10h ; Llama al BIOS

FUNCION 04h INTERRUPCION 10h


LEE LA POSICION DE LA PLUMA OPTICA
MOV AH,04h ; petición para designar tamaño de cursor
INT 10h ; Llama al BIOS

Devuelve en AH=0 (no funcionando), AH=1 (funcionando)


DX : Renglón y columna
CH/BX Posición de píxel: línea en el CH y columna en el BX

FUNCION 08h INTERRUPCION 10h


LEER ATRIBUTO O CARACTER EN LA POSICIÓN DEL CURSOR

FUNCION 09h INTERRUPCION 10h


DESPLEGAR UN ATRIBUTO O CARACTER EN LA POSICIÓN DEL CURSOR

FUNCION 0Ah INTERRUPCION 10h


DESPLEGAR UN CARACTER EN LA POSICION DEL CURSOR (atributo actual)

FUNCION 0Bh INTERRUPCION 10h


ESTABLECE UNA PALETA DE COLORES

BH=00 Selecciona color de fondo


MOV AH,0Bh
MOV BH,00
MOV BL,04 ;color rojo
INT 10h

BH=01 Selecciona paleta para gráficos.


MOV AH,0Bh
MOV BH,01
MOV BL,00 ; (verde, rojo, cafe)
INT 10h

FUNCION 0Ch INTERRUPCION 10h


ESCRIBE UN PIXEL O PUNTO

MOV AH,0Ch ; petición para escribir un punto


MOV AL,12h ; color pixel
MOV BH,12h ; pagina
MOV CX,50 ; posición horizontal
MOV DX,70 ; posición vertical
INT 10h ; Llama al BIOS

5
PROCESAMIENTO DE TECLADO (Avanzado)

Estado del Shift del teclado

Segmento 40:17h (teclado de 83 teclas)


Bit Acción Bit Acción
7 inserción activa 3 Alt presionada
6 Estado de BloqMayús activa 2 ctrl. Presionada
5 Estado de BloqNum activa 1 Shift izquierdo presionado
4 Estado se Scroll Lock activa 0 Shift derecho presionado

Segmento 40:18h (teclado de 101 teclas)


Bit Acción Bit Acción
7 Ins presionada 3 ctrl./ BloqNum (pausa) activa
6 BloqMayús presionada 2 SysReg presionada
5 BloqNum presionada 1 Alt Izquierda presionada
4 Scroll Lock presionada 0 ctrl. Izquierda presionada

INTERRUPCION 21h del dos para entrada desde el


teclado

FUNCION 01h INTERRUPCION 21h


ENTRADA DEL TECLADO CON ECO (REPETICIÓN EN PANTALLA)
(responde a ctrl+break)

AL ≠ 0: significa carácter ASCII estándar presente


Al = 0: Significa que se ha presionado una tecla función extendida.

MOV AH,01h ; petición de entrada del teclado


INT 21h ; interrupción que llama al DOS
CMP al, 00 ; ¿presionó tecla función?
JNZ . . . ; no, entonces es un carácter ASCII

FUNCION 06h INTERRUPCION 21h


E/S DIRECTA DE LA CONSOLA

K10: MOV AH,06h ; petición directa a la consola


MOV DL,0FFh ; entrada del teclado
INT 21h ; interrupción que llama al DOS
JZ K10 ; repetir si el búfer esta vacío
CMP AL,00 ; ¿presionó tecla función?
Jnz K30 ; no, entonces es carácter ASCII
INT 21H ; Si, repetir operación para el código de
rastreo

6
FUNCION 07h INTERRUPCION 21h
ENTRADA DIRECTA DESDE EL TECLADO SIN REPETICIÓN EN PANTALLA.

Funciona igual que la 01h, excepto que el carácter ingresado no se


repite en pantalla y no responde a una operación CTRL + Break.
Puede utilizarla para introducir una contraseña en donde no quiere
perturbar la pantalla.
FUNCION 08h INTERRUPCION 21h
ENTRADA DESDE EL TECLADO SIN REPETICIÓN EN PANTALLA.
Funciona igual que la 01h, excepto que el carácter ingresado no se
repite en pantalla.

FUNCION 0Ah INTERRUPCION 21h


ENTRADA DEL TECLADO MEDIANTE BUFER
No acepta teclas de función extendida.

FUNCION 0Bh INTERRUPCION 21h


VERIFICACION DEL ESTADO DEL TECLADO

Si AL=FF si el carácter esta disponible.


Si AL=00 si ningún carácter esta disponible.

FUNCION 0Ch INTERRUPCION 21h


LIMPIA EL BUFER DEL TECLADO Y LLAMA A UNA FUNCION

Se puede utilizar en asociación con la función 01h, 06h, 07h, 08h,


0Ah. En Al se carga la función que se necesita.

MOV AH,0Ch ; petición de entrada del teclado


MOV Al,función ; funcion que se necesita
MOV DX,KBarea ; Area de entrada de teclado
INT 21h ; Llama al DOS

INTERRUPCION 16h del BIOS para entrada desde el teclado

FUNCION 00h INTERRUPCION 16h


LEE un carácter
- Maneja las teclas del teclado de 83 teclas
- No repite el carácter en pantalla

Tecla presionada AH AL
Carácter ASCII normal Código de rastreo Carácter ASCCI
Tecla de función extendida Codigo de rastreo 00H

7
MOV AH,00h ; petición para leer
INT 16h ; Llama al BIOS
CMP Al,00h ; ¿Es una tecla de función extendida?
JE G40 ; si

FUNCION 01h INTERRUPCION 16h


DETERMINA SI UN CARÁCTER ESTA PRESENTE

- Semejante a la función 00H


- Si un carácter ingresado esta presente en el bufer de teclado
o ZF = 0
o AL = código del carácter
o AH = código de rastreo
- Si no esta presente un carácter
o ZF = 1
o No espera

FUNCION 02h INTERRUPCION 16h


REGRESA EL ESTADO ACTUAL DE LAS TECLAS SHIFT
- Regresa en Al el estado de la tecla Shift del teclado

MOV AH,02H ; Petición del estado del Shift


INT 16h ; interrupción que llama al BIOS
OR Al,00000011b ; ¿se presiono shift izq o der?
JE xxxx ; si

FUNCION 05h INTERRUPCION 16h


ESCRITURA EN EL TECLADO
- Inserta caracteres en el búfer del teclado como si se hubiese
presionado una tecla.
- El carácter ASCII se carga en CH y el código de rastreo en CL.

MOV AH,05h ; petición de escritura en el teclado


MOV CH,30h ; código ASCII
MOV CL,62h ; código de rastreo
INT 16h ; Llama al BIOS
FUNCION 10h INTERRUPCION 16h
LECTURA DE UN CARÁCTER DEL TECLADO
- Realiza lo mismo que la 00H, con la diferencia que acepta
teclas de función extendida.
- No repite el carácter en pantalla.

Tecla presionada AH AL
Carácter ASCII normal Código de rastreo Carácter ASCCI
Tecla de función extendida Codigo de rastreo 00H ó E0H

00h: f1 . . . f12
0E : RePág, Inicio, etc.

8
MOV AH,10h ; petición de lectura de un carácter
INT 16h ; Llama al BIOS
CMP AL,00H ; ¿es una tecla de funcion extendida?
JE G40 ; -si
CMP AL,E0H ; ¿es una tecla de función extendida?
JE G40 ; -si

FUNCION 11h INTERRUPCION 16h


DETERMINA SI ESTA PRESENTE UN CARACTER
Es la misma que la 01H, excepto que reconoce las funciones
extendidas del teclado ampliado.

FUNCION 12h INTERRUPCION 16h


REGRESA ESTADO PRESENTE DEL SHIFT DEL TECLADO
Es la misma que la 02H, regresa en AL el estado del shift del
teclado incluyendo el estado del shift extendido:

Bit Acción Bit Acción


7 SysReq presionada 3 ALT derecha presionada
6 BloqMayús presionada 2 CTRL derecha presionada
5 BloqNum presionada 1 Alt Izquierda presionada
4 Scroll Lock presionada 0 ctrl. Izquierda presionada

Ejemplo1.- prueba una tecla de función extendida:

MOV AH,10H ; Petición para entrar desde el teclado


INT 16H ; Llama al BIOS
CMP AL,00H ; ¿es una función extendida?
JZ salir ; si, entonces salir
CMP AL,0E0H ; ¿es una función extendida?
JZ Salir ; Sí, entonces salir

INTERRUPCION 09H Y EL BUFER DEL TECLADO

DIRECCIÓN EXPLICACIÓN
41Ah Dirección del inicio actual del búfer, la posición
siguiente para la INT 16h para leer
41Ch Dirección del final del búfer, la posición siguiente para
la INT 09h para almacenar un carácter ingresado.
41Eh Dirección del inicio del búfer del teclado: 16 palabras (32
bytes), aunque puede ser más largo. El búfer retiene los
caracteres del teclado y los códigos de rastreo como son
introducidos para lectura posterior por medio de la INT
16h. Se necesitan dos bytes para cada carácter y su código
de rastreo asociado:

9
Dirección de la Dirección del Dirección del
parte inicial parte final Búfer
41A. 41C 41E…

Las teclas Ctrl, Shift y Alt

40:17h [ShiftDere (bit0), ShiftIzq(bit1), control(bit2) y Alt(bit3)]

BIODATAS SEGMENT AT 40H


ORG 17H
ESTADO DB ?
BIODATAS ENDS

CODIGO SEGMENT PARA


ASUMME CS:CODIGO, DS:BIODATAS
ORG 100H
INICIO:
MOV AX,BIODATAS
MOV DS,AX
MOV AL,ESTADO ; obtiene el byte del teclado
TEST AL,00000011b ; verifica si se presionó shift
JNZ xxxxx
. . . . .

También se pueden examinar los bytes de estado del teclado ampliado


40:18h y 40:96h

10

S-ar putea să vă placă și