Está en la página 1de 6

Int 10h

1
Int 10h
INT 10h es la forma abreviada de la interrupcin 0x10. Esta interrupcin controla los servicios de pantalla del PC.
Caractersticas
Esta interrupcin se utiliza bsicamente para mostrar texto en la pantalla (sin llamar a la INT 21h de MS-DOS o INT
80h de linux), para cambiar a modo grfico, para establecer la paleta de colores, etc...
Lista de funciones soportadas
Funcin Cdigo de
funcin
Parmetros Retorno
Activa Modo de video AH=00h AL = Modo de video AL = Bandera del Modo de
video / byte del modo del
controlador de CRT
Asigna forma del cursor
de modo de texto
AH=01h CH = Fila inicial de scan, CL = Fila final de scan
Normalmente una celda de carcter tiene 8 lneas de scan, 0-7. As,
CX=0607h es el cursor normal de subrayado, CX=0007h es un cursor de
bloque completo. Si el bit 7 de CH es activado, esto usualmente significa
"Oculta el cursor"". As CX=2607h es un cursor invisible.
Algunas tarjetas de video tienen 16 lneas de scan, 00h-0Fh.
Algunas tarjetas de video no usan el bit 5 de CH. Con stas, haga Inicio >
Fin (ej. CX=0706h)
Asigna posicin del
cursor
AH = 02h BH = Pgina, DH = Fila, DL = Columna
Lee la posicin del
cursor y su tamao
AH = 03h BH = Pgina AX = 0, CH = Inicio de la lnea
de scan, CL = Fin de la lnea
de scan, DH = Fila, DL =
Columna
Lee la posicin del light
pen (No funciona en
sistemas VGA)
AH = 04h AH = Status (0=no disparado, 1=disparado), BX = Pixel X, CH = Pixel Y,
CX = nmero de lnea del pixel para los modos 0Fh-10h, DH = Caracter
Y, DL = Caracter X
Selecciona Pgina
activa de la pantalla
AH = 05h AL = Nmero de Pgina
Scroll up window AH = 06h AL = Lineas de scroll (0 = Borra), BH = Atributo de las lneas en blanco
Scroll down window AH = 07h AL = Lineas de scroll (0 = Borra), BH = Atributo de las lneas en blanco
Lee carcter y atributo
en la posicin del cursor
AH = 08h BH = Nmero de Pgina AH = Color, AL = Caracter
Escribe carcter y
atributo en la posicin
del cursor
AH = 09h AL = Caracter, BH = Nmero de Pgina, BL = Color, CX = Nmero de
veces para escribir el carcter
Escribe carcter solo en
la posicin del cursor
AH = 0Ah AL = Caracter, BH = Nmero de Pgina, CX = Nmero de veces para
escribir el carcter
Asigna color de
fondo/borde
AH = 0Bh,
BH = 00h
BL = Color del fondo/borde (el borde solo en modos de texto)
Asigna paleta AH = 0Bh,
BH = 01h
BL = ID de Paleta (solo fue vlido en el CGA, pero las nuevas tarjetas lo
soportan en muchos o todos los modos grficos)
Int 10h
2
Escribe pixel grfico AH = 0Ch AL = Color, BH = Pgina, CX = X, DX = Y
Lee pixel grfico AH = 0Dh BH = Pgina, CX = X, DX = Y AL = Color
Salida de teletipo AH = 0Eh AL = Caracter, BL = Color (solo en modo grfico)
Lee modo de video
actual
AH = 0Fh AL = Modo de video
Escribe string (EGA+,
lo que significa como
mnimo un PC AT)
AH = 13h AL = Modo de escritura, BH = Pgina, BL = Color, CX = Longitud del
string, DH = Fila, DL = Columna, ES:BP = Posicin del string
Tabla de modos de vdeo
Modo Resolucin Colores Tipo
AL = 00h 40x25 16 Texto
AL = 01h 40x25 16 Texto
AL = 02h 80x25 16 Texto
AL = 03h 80x25 16 Texto
AL = 04h 320x200 4 Grfico
AL = 05h 320x200 4 Grfico
AL = 06h 640x200 2 Grfico
AL = 07h 80x25 2 Texto
AL = 0Dh 320x200 16 Grfico
AL = 0Eh 640x200 16 Grfico
AL = 0Fh 640x350 2 Grfico
AL = 10h 640x350 4 Grfico EGA 64 KB
AL = 10h 640x350 16 Grfico EGA menor de 64 KB y VGA
AL = 11h 640x480 2 Grfico
AL = 12h 640x480 16 Grfico
AL = 13h 320x200 256 Grfico
BX = 100h 640x400 256 Grfico (SVGA)
BX = 101h 640x480 256 Grfico (SVGA)
BX = 102h 800x600 16 Grfico (SVGA)
BX = 103h 800x600 256 Grfico (SVGA)
BX = 104h 1024x768 16 Grfico (SVGA)
BX = 105h 1024x768 256 Grfico (SVGA)
BX = 106h 1028x1024 16 Grfico (SVGA)
BX = 107h 1028x1024 256 Grfico (SVGA)
BX = 113h 800x600 32K Grfico (SVGA)
BX = 114h 800x600 64K Grfico (SVGA)
BX = 115h 800x600 16M Grfico (SVGA)
Int 10h
3
Lista de servicios de la INT 10h
AH = 00h Vdeo Establecer modo de vdeo
AH = 01h Vdeo Establecer el tamao del cursor
AH = 02h Vdeo Posicionar el cursor
AH = 03h Vdeo Obtener posicin y tamao del cursor
AH = 04h Vdeo Obtener posicin del lpiz ptico (excepto VGA)
AH = 06h Vdeo Subir lnea
AH = 07h Vdeo Bajar lnea
AH = 0Bh BH=00h Vdeo Establecer color de fondo o borde
AH = 0Bh BH=01h Vdeo Establecer paleta grfica
AH = 0Ch Vdeo Escribir pixel grfico
AH = 0Dh Vdeo Leer pixel grfico
AH = 0Eh Vdeo Funcin TeleType (escribir caracteres en la pantalla)
AH = 0Fh Vdeo Obtener el modo de vdeo
AX = 1100h Vdeo Cambiar fuente de vdeo (Modo Texto)
AX = 4F02h SVGA Establecer modo de vdeo SVGA
AX = 4F03h SVGA Obtener modo de vdeo SVGA
INT 10h AX=1100h - Cambiar fuente de vdeo (Modo Texto)
Parmetros:
AX=1100h Cambiar fuente de vdeo (Modo Texto)
ES:BP Direccin de la tabla de caracteres nuevos
CX = ?? Nmero de caracteres a cambiar
DX = ?? Nmero del carcter ASCII desde donde se empieza a cambiar las fuentes
BH = ?? Bloque a leer en el mapa 2
BL = ?? Nmero de bytes por carcter
Retorna: Nada
Ejemplo:
ORG 100h
;Este ejemplo carga una letra A personalizada
;Para probarlo ejecutar el programa en MS-DOS
push ds ;Asegurar que DS=ES
pop es
mov ax,1100h ;Funcion de cargar caracteres
mov bp,caract ;Tabla de caracteres
mov cx,1 ;Cargar 1 carcter
mov dx,61 ;Cambiar el carcter 61
Int 10h
4
mov bh,14 ;14 bytes por carcter
xor bl,bl ;Bloque 0
int 10h ;Llamamos a la INT 10h
mov ah,0Eh ;Funcion teletype
mov al,61 ;Mostrar el carcter cambiado
int 10h ;Llamamos a la INT 10h
int 20h ;Volvemos a MS-DOS
caract: ;Tabla de caracteres
db 11111111b ;Dibujo en binaro de nuestra "A" personalizada
db 11111111b
db 11000011b
db 11000011b
db 11000011b
db 11111111b
db 11111111b
db 11000011b
db 11000011b
db 11000011b
db 11000011b
db 11000011b
db 11000011b
db 11000011b
INT 10h AH=0Eh - Funcin TeleType
Parmetros:
AH = 0Eh Funcin TeleType
AL = ?? Carcter a escribir
BH = ?? Nmero de pgina
BL = ?? Color de fondo (solo en modo grfico)
Retorna: Nada
Ejemplo:
inicio:
XOR AX,AX ; AX=0
MOV AL,03h ; Modo de texto 80x25x16
INT 10h ; Llamamos a la INT 10h
LEA SI,holamundo ; Cargamos en SI la direccin de memoria efectiva de la constante
CALL escribir_cadena ; Llamamos a la funcin de escribir la variable en pantalla
INT 16h ; Pedimos una tecla (AH=0)
Int 10h
5
HLT ; Paramos la ejecucin
escribir_cadena:
PUSH AX ; Guardamos los registros AX y SI en la pila
PUSH SI ;
siguiente_caracter:
MOV AL,[SI] ; Movemos la siguiente o primera letra de la variable de SI a AL
CMP AL,0 ; Hemos terminado de escribir en pantalla?
JZ terminado ; Saltamos si es 0, entonces hemos terminado de escribir
INC SI ; Incrementamos el valor de SI (Siguiente carcter)
MOV AH,0Eh ; Funcin TeleType
INT 10h ; Llamamos a la interrupcin 10h
JMP siguiente_caracter ; Hacemos un bucle para escribir el siguiente carcter
terminado:
POP AX ; Liberamos los registros AX y SI de la pila
POP SI ;
RET ; Salimos de la funcin
holamundo db "Hola Mundo!",0Dh,0Ah,0 ; Variable con la cadena de texto
; 0Dh y 0Ah se usan para un salto de linea
; y 0 para indicar que es el final de la linea
Enlaces externos
Gua completa y explicada de la interrupcin 10h
[1]
Referencias
[1] http:/ / www. ctyme. com/ intr/ int-10. htm
Fuentes y contribuyentes del artculo
6
Fuentes y contribuyentes del artculo
Int 10h Fuente: http://es.wikipedia.org/w/index.php?oldid=65879970 Contribuyentes: Abece, Asm50, GermanX, Seasz, 11 ediciones annimas
Licencia
Creative Commons Attribution-Share Alike 3.0
//creativecommons.org/licenses/by-sa/3.0/

También podría gustarte