Int 10h

Int 10h

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

Contenido

Características

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

Lista de funciones soportadas

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

Tabla de modos de vídeo

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

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)

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 caracter
mov dx,61    ;Cambiar el caracter 61
mov bh,14    ;14 bytes por caracter
xor bl,bl    ;Bloque 0
int 10h        ;Llamamos a la INT 10h
 
mov ah,0Eh ;Funcion teletype
mov al,61 ;Mostrar el caracter 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

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:

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 caracter)
MOV AH,0Eh ;Función TeleType
INT 10h ;Llamamos a la interrupción 10h
JMP siguiente_caracter ;Hacemos un bucle para escribir el siguiente caracter
terminado:
POP AX ;Liberamos los registros AX y SI de la pila
POP SI ;
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

Véase también

Enlaces externos


Wikimedia foundation. 2010.

Игры ⚽ Поможем сделать НИР

Mira otros diccionarios:

  • INT 10 — is shorthand for interrupt 0x10 or interrupt 10h and is the 17th interrupt vector (interrupts begin at 0, and are usually specified as hexadecimal values). This corresponds to the BIOS interrupt call for video services. Such services include… …   Wikipedia

  • Int 16h — es la forma abreviada de la interrupción 0x16. Esta interrupción se encarga de controlar el teclado del PC. Contenido 1 Características 2 Lista de servicios de la INT 16h 3 INT 16h AH=00h Leer pulsación de tecla …   Wikipedia Español

  • Int 15h — es la forma abreviada de la interrupción 0x15. Esta interrupción controla los servicios extendidos del PC. Contenido 1 Características 2 Lista de servicios de la INT 15h 3 Tabla de funciones de Joystick …   Wikipedia Español

  • Int 13h — es la forma abreviada de la interrupción 0x13. Esta interrupción se encarga de las operaciones típicas de acceso a los discos duros y a los disquetes. Contenido 1 Características 2 Lista de servicios de la INT 13h 3 Tabla de unidades …   Wikipedia Español

  • Llamada de interrupción del BIOS — Las llamadas de interrupción del BIOS son una facilidad que los programas DOS, y otro tipo de porgramas como cargadores de arranque, usan para invocar las funciones del BIOS. Algunos sistemas operativos también usan el BIOS para probar e… …   Wikipedia Español

  • Машинный код — Эта статья о системе команд в целом; об инструкциях см.: Код операции. Машинный код (платформенно ориентированный код), машинный язык  система команд (набор кодов операций) конкретной вычислительной машины, которая интерпретируется… …   Википедия

  • Алгоритм Брезенхэма — Иллюстрация результата работы алгоритма Алгоритм Брезенхема (англ. Bresenham s line algorithm)  это алгоритм, определяющий, какие точки двумерного растра нужно закрасить, чтобы получить близкое приближ …   Википедия

  • Резидентная программа — (или TSR программа, от англ. Terminate and Stay Resident  «завершиться и остаться резидентной»)  в операционной системе MS DOS программа, вернувшая управление оболочке операционной системы (command.com), либо надстройке над… …   Википедия

  • Modo 13h — El Modo 13h o modo13 es un término utilizado para un modo gráfico estándar de 256 colores en las tarjetas gráficas VGA de IBM. Tiene una resolución de 320x200 píxeles y fue usado bastante en juegos de computadora y software de arte/animación a… …   Wikipedia Español

  • VESA BIOS Extensions — (VBE) comprise a VESA standard, currently at version 3, that defines the interface that can be used by software to access compliant video boards at high resolutions and bit depths. This is opposed to the traditional int 10h BIOS calls, which are… …   Wikipedia

Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”