Sei sulla pagina 1di 8

Int 10h

INT 10h es la forma abreviada de la interrupción 0x10. Esta interrupción controla los
servicios de pantalla del PC.

Índice
[ocultar]

 1Características
 2Lista de funciones soportadas
 3Tabla de modos de vídeo
 4Lista de servicios de la INT 10h
 5INT 10h AX=1100h - Cambiar fuente de vídeo (Modo Texto)
 6INT 10h AH=0Eh - Función TeleType
 7Véase también
 8Enlaces externos

Características[editar]
Esta interrupción se utiliza básicamente para mostrar texto en la pantalla (sin llamar a la
INT 21h de MS-DOS o INT 80h de linux), para cambiar a modo gráfico, para establecer la
paleta de colores, etc...

Lista de funciones soportadas[editar]

Código
Función de Parámetros Retorno
función

AL = Bandera del
Modo de video /
Activa Modo de video AH=00h AL = Modo de video byte del modo del
controlador de
CRT

CH = Fila inicial de scan, CL = Fila


final de scan

Normalmente una celda de carácter


tiene 8 líneas de scan, 0-7. Así,
CX=0607h es el cursor normal de
Asigna forma del cursor
AH=01h subrayado, CX=0007h es un cursor
de modo de texto
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
líneas de scan, 00h-0Fh.
Algunas tarjetas de video no usan el
bit 5 de CH. Con éstas, haga Inicio
> Fin (ej. CX=0706h)

Asigna posición del AH = BH = Página, DH = Fila, DL =


cursor 02h Columna
AX = 0, CH =
Inicio de la línea
Lee la posición del cursor AH = de scan, CL = Fin
BH = Página
y su tamaño 03h de la línea de scan,
DH = Fila, DL =
Columna
AH = Status (0=no disparado,
Lee la posición del light 1=disparado), BX = Pixel X, CH =
AH =
pen (No funciona en Pixel Y, CX = número de línea del
04h
sistemas VGA) pixel para los modos 0Fh-10h, DH
= Caracter Y, DL = Caracter X
Selecciona Página activa AH =
AL = Número de Página
de la pantalla 05h
AL = Líneas de scroll (0 = Borra),
AH =
Scroll up window BH = Atributo de las líneas en
06h
blanco
AL = Líneas de scroll (0 = Borra),
AH =
Scroll down window BH = Atributo de las líneas en
07h
blanco
Lee carácter y atributo en AH = AH = Color, AL =
BH = Número de Página
la posición del cursor 08h Caracter
Escribe carácter y AL = Caracter, BH = Número de
AH =
atributo en la posición del Página, BL = Color, CX = Número
09h
cursor de veces para escribir el carácter
AL = Caracter, BH = Número de
Escribe carácter solo en AH =
Página, CX = Número de veces para
la posición del cursor 0Ah
escribir el carácter
AH =
Asigna color de BL = Color del fondo/borde (el
0Bh, BH
fondo/borde borde solo en modos de texto)
= 00h
BL = ID de Paleta (solo fue válido
AH =
en el CGA, pero las nuevas tarjetas
Asigna paleta 0Bh, BH
lo soportan en muchos o todos los
= 01h
modos gráficos)
AH = AL = Color, BH = Página, CX = X,
Escribe pixel gráfico
0Ch DX = Y
AH =
Lee pixel gráfico BH = Página, CX = X, DX = Y AL = Color
0Dh
AH = AL = Caracter, BL = Color (solo en
Salida de teletipo
0Eh modo gráfico)
AH = AL = Modo de
Lee modo de video actual
0Fh video
AL = Modo de escritura, BH =
Escribe string (EGA+, lo Página, BL = Color, CX = Longitud
AH =
que significa como del string, DH = Fila, DL =
13h
mínimo un PC AT) Columna, ES:BP = Posición del
string

Tabla de modos de vídeo[editar]

Modo Resolución 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 Gráfico

AL = 05h 320x200 4 Gráfico

AL = 06h 640x200 2 Gráfico

AL = 07h 80x25 2 Texto

AL = 0Dh 320x200 16 Gráfico

AL = 0Eh 640x200 16 Gráfico

AL = 0Fh 640x350 2 Gráfico

AL = 10h 640x350 4 Gráfico EGA 64 KB

AL = 10h 640x350 16 Gráfico EGA menor de 64 KB y VGA


AL = 11h 640x480 2 Gráfico

AL = 12h 640x480 16 Gráfico

AL = 13h 320x200 256 Gráfico

BX = 100h 640x400 256 Gráfico (SVGA)

BX = 101h 640x480 256 Gráfico (SVGA)

BX = 102h 800x600 16 Gráfico (SVGA)

BX = 103h 800x600 256 Gráfico (SVGA)

BX = 104h 1024x768 16 Gráfico (SVGA)

BX = 105h 1024x768 256 Gráfico (SVGA)

BX = 106h 1028x1024 16 Gráfico (SVGA)

BX = 107h 1028x1024 256 Gráfico (SVGA)

BX = 113h 800x600 32K Gráfico (SVGA)

BX = 114h 800x600 64K Gráfico (SVGA)

BX = 115h 800x600 16M Gráfico (SVGA)

Lista de servicios de la INT 10h[editar]

AH = 00h Vídeo Establecer modo de vídeo


AH = 01h Vídeo Establecer el tamaño del cursor

AH = 02h Vídeo Posicionar el cursor

AH = 03h Vídeo Obtener posición y tamaño del cursor

AH = 04h Vídeo Obtener posición del lápiz óptico (excepto VGA)

AH = 06h Vídeo Subir línea

AH = 07h Vídeo Bajar línea

AH = 0Bh BH=00h Vídeo Establecer color de fondo o borde

AH = 0Bh BH=01h Vídeo Establecer paleta gráfica

AH = 0Ch Vídeo Escribir pixel gráfico

AH = 0Dh Vídeo Leer pixel gráfico

AH = 0Eh Vídeo Función TeleType (escribir caracteres en la pantalla)

AH = 0Fh Vídeo Obtener el modo de vídeo

AX = 1100h Vídeo Cambiar fuente de vídeo (Modo Texto)

AX = 4F02h SVGA Establecer modo de vídeo SVGA

AX = 4F03h SVGA Obtener modo de vídeo SVGA

INT 10h AX=1100h - Cambiar fuente de vídeo (Modo


Texto)[editar]
Parámetros:
AX=1100h Cambiar fuente de vídeo (Modo Texto)

ES:BP Dirección de la tabla de caracteres nuevos

CX = ?? Número de caracteres a cambiar

DX = ?? Número del carácter ASCII desde donde se empieza a cambiar las fuentes

BH = ?? Bloque a leer en el mapa 2

BL = ?? Número de bytes por carácter

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 carácter
mov dx,61 ;Cambiar el carácter 61
mov bh,14 ;14 bytes por carácter
xor bl,bl ;Bloque 0
int 10h ;Llamamos a la INT 10h

mov ah,0Eh ;Funcion teletype


mov al,61 ;Mostrar el carácter 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 - Función TeleType[editar]


Parámetros:

AH = 0Eh Función TeleType

AL = ?? Carácter a escribir

BH = ?? Número de página

BL = ?? Color de fondo (solo en modo gráfico)

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 dirección de memoria


efectiva de la constante
CALL escribir_cadena ; Llamamos a la función de escribir la
variable en pantalla

INT 16h ; Pedimos una tecla (AH=0)


HLT ; Paramos la ejecución
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


carácter)
MOV AH,0Eh ; Función TeleType
INT 10h ; Llamamos a la interrupción 10h
JMP siguiente_caracter ; Hacemos un bucle para escribir el
siguiente carácter

terminado:
POP SI ; Liberamos los registros SI y AX de la
pila
POP AX ;
RET ; Salimos de la función

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

Potrebbero piacerti anche