fbpx
Wikipedia

Llamada de interrupción del BIOS

Las llamadas de interrupción del BIOS (Basic Input Output System) son una facilidad soportada por el BIOS que los programas DOS, u otro tipo de programas como cargadores de arranque, así como sistemas operativos usan para acceder al hardware más básico de un computador PC Compatible (arquitectura x86). Algunos sistemas operativos también usan el BIOS para probar e inicializar recursos de hardware durante las primeras etapas del arranque. Estas llamadas pueden verse como parte de la funcionalidad de un sistema operativo implementada en memoria no volátil por el propio fabricante del computador.

Los sistemas operativos de PC primitivos se apoyaban en estas llamadas para realizar parte de sus operaciones de entrada/salida. Sin embargo, estas llamadas están implementadas en modo real, mientras que muchos sistemas operativos ya funcionan en Modo Protegido. Tales sistemas operativos han de cambiar a modo real antes de realizar la llamada de interrupción y regresar a modo Protegido después. Linux y las versiones recientes de sistemas Windows ya no aprovechan estas llamadas e implementan enteramente todo el acceso al hardware en rutinas propias.

Este artículo trata específicamente sobre las llamadas de función de los BIOS usados en los computadores compatibles con el IBM PC, es decir, los computadores de la arquitectura x86.

Invocación de una interrupción

Invocar una interrupción puede hacerse usando la instrucción INT en lenguaje ensamblador de los procesadores x86. Por ejemplo, para imprimir un carácter a la pantalla usando la interrupción 10h del BIOS, las siguientes instrucciones deberán ser ejecutadas:

 MOV AH, 0Eh ; Imprime carácter en la pantalla MOV AL, '!' ; carácter a imprimir INT 10h ; Llamada a las funciones de video del BIOS 

Tabla de interrupciones

Abajo se encuentra una lista de interrupciones del BIOS. Note que algunos BIOS (particularmente los viejos) no soportarán todas estas interrupciones.

Vector de interrupción
en Hex
Descripción
00h CPU: Ejecutado después de un intento de división por cero o cuando un cociente no cabe en el destino
01h CPU: Ejecutado después de cada instrucción de código de máquina mientras la bandera de trazado esté activo
02h CPU: NMI. Usado por el Power On Self Test (POST) para errores de memoria
03h CPU: La más baja interrupción no reservada, es usada exclusivamente para depuración, y el manejador INT 03h siempre es implementado por un programa de depuración
04h CPU: Numeric Overflow. Usualmente causado por la instrucción INTO cuando la bandera de desbordamiento está activada
05h Ejecutado cuando es presionado Shift-Print Screen, así como cuando la instrucción BOUNDh detecta una falla de límite
06h CPU: Llamada cuando una excepción de opcode indefinido (código inválido). Usualmente instalado por el sistema operativo
07h CPU: Llamada cuando se intenta usar una instrucción de coma flotante y no está disponible un coprocesador numérico
08h IRQ0: Implementada por el componente de temporización del sistema; llamado 18,2 veces por segundo (una cada 55 ms) por el PIC
09h IRQ1: LLamada después de que cada tecla es presionada o soltada (como también durante el tiempo en que una tecla es mantenida presionada)
0Bh IRQ3: Llamada por los puertos seriales 2 y 4 (COM2 y COM4) cuando es necesaria atención
0Ch IRQ4: Llamada por los puertos seriales 1 y 3 (COM1 y COM3) cuando es necesaria atención
0Dh IRQ5: Llamada por el controlador del disco duro (PC/XT) y el segundo puerto paralelo LPT2 (AT) cuando es necesaria atención
0Eh IRQ6: Llamada por el controlador de disco floppy cuando es necesaria atención
0Fh IRQ7: Llamada por el primer puerto paralelo LPT1 (impresora) cuando es necesaria atención
10h Servicios de video - Instalado por el BIOS o el sistema operativo; llamado por programas de software
AH Descripción (Ing) Descripción (Esp)
00h Set Video Mode Selecciona modo de vídeo
01h Set Cursor Shape Ajusta forma del cursor
02h Set Cursor Position Ajusta la posición del cursor
03h Get Cursor Position And Shape Lee la posición y la forma del cursor
04h Get Light Pen Position Lee la posición del Light Pen
05h Set Display Page Selecciona la Página de exhibición
06h Clear/Scroll Screen Up Borra la pantalla / Desplazamiento (Scroll) hacia arriba
07h Clear/Scroll Screen Down Borra la pantalla / Desplazamiento (Scroll) hacia abajo
08h Read Character and Attribute at Cursor Lee un carácter y su atributo en la posición del cursor
09h Write Character and Attribute at Cursor Escribe un carácter y su atributo en la posición del cursor
0Ah Write Character at Cursor Escribe un carácter en la posición del cursor
0Bh Set Border Color Ajusta el color del borde de la pantalla
0Eh Write Character in TTY Mode Escribe un carácter en modo TTY
0Fh Get Video Mode Lee el modo de vídeo
13h Write String Escribe un string
11h Instalado por el BIOS; retorna la lista del equipo instalado
12h Instalado por el BIOS o el sistema operativo; retorna el tamaño de la memoria convencional
13h Servicios de disco de bajo nivel; instalado por el BIOS o el sistema operativo; llamado por programas de software
AH Descripción (Ing) Descripción (Esp)
00h Reset Disk Drives Reinicia las unidades de disco
01h Check Drive Status Chequea el estado de las unidades
02h Read Sectors From Drive Lee sectores desde la unidad
03h Write Sectors To Drive Escribe sectores hacia la unidad
04h Verify Sectors On Drive Verifica sectores en la unidad
05h Format Track On Drive Formatea una pista en la unidad
08h Get Drive Parameters Lee los parámetros de la unidad
09h Init Fixed Drive Parameters Inicia los parámetros de la unidad fija (disco duro)
0Ch Seek To Specified Track Hace un Seek a la pista especificada
0Dh Reset Fixed Disk Controller Reinicia el controlador de la unidad fija
15h Get Drive Type Lee el tipo de la unidad
16h Get Floppy Drive Media Change Status Lee el estado de cambio del medio de la unidad floppy
14h Rutinas para la comunicación vía el puerto serial. Usado por programas de software
AH Descripción (Ing) Descripción (Esp)
00h Serial Port Initialization Inicialización del puerto serial
01h Transmit Character Transmite carácter
02h Receive Character Recibe carácter
03h Status Estado
15h Misceláneas (Rutinas de soporte para servicios del sistema)
AH AL Descripción (Ing) Descripción (Esp)
4Fh Keyboard Intercept Intercepta el teclado
83h Event Wait Espera evento
84h Read Joystick Lee el Joystick
85h Sysreq Key Callout
86h Wait Espera
87h Move Block
88h Get Extended Memory Size Lee el tamaño de la memoria extendida
C0h Get System Parameters Lee los parámetros del sistema
C1h Get Extended BIOS Data Area Segment Lee el segmento del área de datos extendida del BIOS
C2h Pointing Device Functions Funciones del dispositivo apuntador
E8h 01h Get Extended Memory Size (Newer function, since 1994). Gives results for memory size above 64 Mb. Lee el tamaño de la memoria extendida
E8h 20h Query System Address Map. The information returned from e820 supersedes what is returned from the older AX=E801hh and AH=88hh interfaces. Información sobre el Mapa de memoria del sistema
16h Implementado por el BIOS o el sistema operativo. Provee rutinas a ser llamadas por programas de software que se comunican con el teclado
AH Descripción (Ing) Descripción (Esp)
00h Read Character Lee carácter
01h Read Input Status Lee el estado de entrada
02h Read Keyboard Shift Status Lee el estado de las teclas de desplazamiento (SHIFT, CTRL, ALT)
10h Read Character Extended Lee el carácter extendido
11h Read Input Status Extended Lee el estado de entrada extendido
12h Read Keyboard Shift Status Extended Lee el estado de las teclas de desplazamiento extendido
17h Servicios de Impresora - Usado por los programas de software para comunicarse con la impresora
AH Descripción (Ing) Descripción (Esp)
00h Print Character to Printer Imprime un carácter a la impresora
01h Initialize Printer Inicializa la impresora
02h Check Printer Status Lee el estado de la impresora
18h Ejecuta el IBM ROM BASIC: Los computadores personales de originales de IBM contienen el BASIC en ROM para ser ejecutado por esta rutina en el evento de una falla en la carga (boot). LLamado por el BIOS
19h Boot Strap Loader. Después del POST, esta interrupción es usada por el BIOS para cargar el sistema operativo
1Ah Servicios del Real Time Clock (RTC) (Reloj de Tiempo Real) - Llamado por programas de software para comunicarse con el RTC
AH Descripción
00h Lee el RTC
01h Ajusta el RTC
02h Lee la hora del RTC
03h Ajusta la hora del RTC
04h Lee la fecha del RTC
05h Ajusta la fecha del RTC
06h Ajusta la alarma RTC
07h Resetea la alarma del RTC
1Bh Instalado por el sistema operativo; automáticamente llamado por INT 9h cuando ha sido presionado Ctrl-Break
1Ch Llamado automáticamente por INT 08h; disponible para el uso por programas de software cuando una rutina necesita ser ejecutada regularmente
1Dh No debe ser llamado; simplemente un puntero para la Tabla de Parámetros del Video (VPT), que contiene datos sobre modos de video
1Eh No debe ser llamado; simplemente un puntero para la Tabla de Parámetros del Disquete (DPT), conteniendo una variedad de información concerniente a las unidades de disquete
1Fh No debe ser llamado; simplemente un puntero para Tabla la Tabla de Caracteres de Gráficos de Video (VGCT), que contiene los datos para los caracteres ASCII 80h a FFh
41h Puntero de dirección: Tabla de Parámetros del Disco Fijo (FDPT) (Primera unidad de disco)
46h Puntero de dirección: Tabla de Parámetros del Disco Fijo (FDPT) (Segunda unidad de disco)
4Ah Llamado por el RTC para alarma
70h IRQ8: Llamado por el RTC
74h IRQ12: Llamado por el ratón
75h IRQ13: Llamado por el coprocesador matemático
76h IRQ14: Llamado por el controlador IDE primario
77h IRQ15: Llamado por el controlador IDE secundario

Hooks del DOS

El IBMBIO.COM del PC DOS, y el su equivalente, el IO.SYS del MS-DOS, se enganchaban (hook) al INT 13 para la detección del cambio del disco floppy, llamadas para formateo de pistas, corregir errores de límites en el DMA, trabajar alrededor de problemas en el IBM PC ROM BIOS del "01/10/84" que modela el código FC antes de la primera llamada. El vector de interrupción 13 puede apuntar a un hook de software en vez de la rutina en el BIOS, con el que algunos virus búlgaros son conocidos para usar en contra del software de monitoreo de virus.[1]

INT 18h: Ejecuta el BASIC en ROM

El INT 18h tradicionalmente saltaba a una implementación de BASIC almacenada en ROM, el Cassette BASIC. Esta llamada típicamente sería invocada si el BIOS no podía identificar ningún volumen booteable en el inicio. (En el momento en que el IBM PC fue lanzado, en 1981, el BASIC en ROM fue una característica clave). A medida que el tiempo pasó y el BASIC ya no fue despachado en todos los PC, esta interrupción simplemente exhibiría un mensaje de error indicando que no fue encontrado ningún dispositivo booteable (el famoso "No ROM BASIC", o un mensaje más explicativo en versiones posteriores del BIOS). En otras versiones del BIOS se solicitaba al usuario insertar un volumen booteable y presionar una tecla, y después que el usuario lo hiciera, retornaría al bootstrap loader para tratar de cargar de nuevo.

Véase también

Referencias

  1. . www2.informatik.uni-halle.de. Archivado desde el original el 2 de septiembre de 2013. Consultado el 3 de octubre de 2016. 

Enlaces externos

  • The x86 Interrupt List (a.k.a. RBIL, Ralf Brown's Interrupt List)
  • Embedded BIOS User’s Manual
  • Turbo Pascal examples for reading sectors
  •   Datos: Q1139756

llamada, interrupción, bios, llamadas, interrupción, bios, basic, input, output, system, facilidad, soportada, bios, programas, otro, tipo, programas, como, cargadores, arranque, así, como, sistemas, operativos, usan, para, acceder, hardware, más, básico, comp. Las llamadas de interrupcion del BIOS Basic Input Output System son una facilidad soportada por el BIOS que los programas DOS u otro tipo de programas como cargadores de arranque asi como sistemas operativos usan para acceder al hardware mas basico de un computador PC Compatible arquitectura x86 Algunos sistemas operativos tambien usan el BIOS para probar e inicializar recursos de hardware durante las primeras etapas del arranque Estas llamadas pueden verse como parte de la funcionalidad de un sistema operativo implementada en memoria no volatil por el propio fabricante del computador Los sistemas operativos de PC primitivos se apoyaban en estas llamadas para realizar parte de sus operaciones de entrada salida Sin embargo estas llamadas estan implementadas en modo real mientras que muchos sistemas operativos ya funcionan en Modo Protegido Tales sistemas operativos han de cambiar a modo real antes de realizar la llamada de interrupcion y regresar a modo Protegido despues Linux y las versiones recientes de sistemas Windows ya no aprovechan estas llamadas e implementan enteramente todo el acceso al hardware en rutinas propias Este articulo trata especificamente sobre las llamadas de funcion de los BIOS usados en los computadores compatibles con el IBM PC es decir los computadores de la arquitectura x86 Indice 1 Invocacion de una interrupcion 2 Tabla de interrupciones 3 Hooks del DOS 4 INT 18h Ejecuta el BASIC en ROM 5 Vease tambien 6 Referencias 7 Enlaces externosInvocacion de una interrupcion EditarInvocar una interrupcion puede hacerse usando la instruccion INT en lenguaje ensamblador de los procesadores x86 Por ejemplo para imprimir un caracter a la pantalla usando la interrupcion 10h del BIOS las siguientes instrucciones deberan ser ejecutadas MOV AH 0 Eh Imprime caracter en la pantalla MOV AL caracter a imprimir INT 10 h Llamada a las funciones de video del BIOSTabla de interrupciones EditarAbajo se encuentra una lista de interrupciones del BIOS Note que algunos BIOS particularmente los viejos no soportaran todas estas interrupciones Vector de interrupcionen Hex Descripcion00h CPU Ejecutado despues de un intento de division por cero o cuando un cociente no cabe en el destino01h CPU Ejecutado despues de cada instruccion de codigo de maquina mientras la bandera de trazado este activo02h CPU NMI Usado por el Power On Self Test POST para errores de memoria03h CPU La mas baja interrupcion no reservada es usada exclusivamente para depuracion y el manejador INT 03h siempre es implementado por un programa de depuracion04h CPU Numeric Overflow Usualmente causado por la instruccion INTO cuando la bandera de desbordamiento esta activada05h Ejecutado cuando es presionado Shift Print Screen asi como cuando la instruccion BOUNDh detecta una falla de limite06h CPU Llamada cuando una excepcion de opcode indefinido codigo invalido Usualmente instalado por el sistema operativo07h CPU Llamada cuando se intenta usar una instruccion de coma flotante y no esta disponible un coprocesador numerico08h IRQ0 Implementada por el componente de temporizacion del sistema llamado 18 2 veces por segundo una cada 55 ms por el PIC09h IRQ1 LLamada despues de que cada tecla es presionada o soltada como tambien durante el tiempo en que una tecla es mantenida presionada 0Bh IRQ3 Llamada por los puertos seriales 2 y 4 COM2 y COM4 cuando es necesaria atencion0Ch IRQ4 Llamada por los puertos seriales 1 y 3 COM1 y COM3 cuando es necesaria atencion0Dh IRQ5 Llamada por el controlador del disco duro PC XT y el segundo puerto paralelo LPT2 AT cuando es necesaria atencion0Eh IRQ6 Llamada por el controlador de disco floppy cuando es necesaria atencion0Fh IRQ7 Llamada por el primer puerto paralelo LPT1 impresora cuando es necesaria atencion10h Servicios de video Instalado por el BIOS o el sistema operativo llamado por programas de software AH Descripcion Ing Descripcion Esp 00h Set Video Mode Selecciona modo de video01h Set Cursor Shape Ajusta forma del cursor02h Set Cursor Position Ajusta la posicion del cursor03h Get Cursor Position And Shape Lee la posicion y la forma del cursor04h Get Light Pen Position Lee la posicion del Light Pen05h Set Display Page Selecciona la Pagina de exhibicion06h Clear Scroll Screen Up Borra la pantalla Desplazamiento Scroll hacia arriba07h Clear Scroll Screen Down Borra la pantalla Desplazamiento Scroll hacia abajo08h Read Character and Attribute at Cursor Lee un caracter y su atributo en la posicion del cursor09h Write Character and Attribute at Cursor Escribe un caracter y su atributo en la posicion del cursor0Ah Write Character at Cursor Escribe un caracter en la posicion del cursor0Bh Set Border Color Ajusta el color del borde de la pantalla0Eh Write Character in TTY Mode Escribe un caracter en modo TTY0Fh Get Video Mode Lee el modo de video13h Write String Escribe un string11h Instalado por el BIOS retorna la lista del equipo instalado12h Instalado por el BIOS o el sistema operativo retorna el tamano de la memoria convencional13h Servicios de disco de bajo nivel instalado por el BIOS o el sistema operativo llamado por programas de software AH Descripcion Ing Descripcion Esp 00h Reset Disk Drives Reinicia las unidades de disco01h Check Drive Status Chequea el estado de las unidades02h Read Sectors From Drive Lee sectores desde la unidad03h Write Sectors To Drive Escribe sectores hacia la unidad04h Verify Sectors On Drive Verifica sectores en la unidad05h Format Track On Drive Formatea una pista en la unidad08h Get Drive Parameters Lee los parametros de la unidad09h Init Fixed Drive Parameters Inicia los parametros de la unidad fija disco duro 0Ch Seek To Specified Track Hace un Seek a la pista especificada0Dh Reset Fixed Disk Controller Reinicia el controlador de la unidad fija15h Get Drive Type Lee el tipo de la unidad16h Get Floppy Drive Media Change Status Lee el estado de cambio del medio de la unidad floppy14h Rutinas para la comunicacion via el puerto serial Usado por programas de software AH Descripcion Ing Descripcion Esp 00h Serial Port Initialization Inicializacion del puerto serial01h Transmit Character Transmite caracter02h Receive Character Recibe caracter03h Status Estado a href INT 15h html class mw redirect title INT 15h 15h a Miscelaneas Rutinas de soporte para servicios del sistema AH AL Descripcion Ing Descripcion Esp 4Fh Keyboard Intercept Intercepta el teclado83h Event Wait Espera evento84h Read Joystick Lee el Joystick85h Sysreq Key Callout86h Wait Espera87h Move Block88h Get Extended Memory Size Lee el tamano de la memoria extendidaC0h Get System Parameters Lee los parametros del sistemaC1h Get Extended BIOS Data Area Segment Lee el segmento del area de datos extendida del BIOSC2h Pointing Device Functions Funciones del dispositivo apuntadorE8h 01h Get Extended Memory Size Newer function since 1994 Gives results for memory size above 64 Mb Lee el tamano de la memoria extendidaE8h 20h Query System Address Map The information returned from e820 supersedes what is returned from the older AX E801hh and AH 88hh interfaces Informacion sobre el Mapa de memoria del sistema a href Int 16h html title Int 16h 16h a Implementado por el BIOS o el sistema operativo Provee rutinas a ser llamadas por programas de software que se comunican con el teclado AH Descripcion Ing Descripcion Esp 00h Read Character Lee caracter01h Read Input Status Lee el estado de entrada02h Read Keyboard Shift Status Lee el estado de las teclas de desplazamiento SHIFT CTRL ALT 10h Read Character Extended Lee el caracter extendido11h Read Input Status Extended Lee el estado de entrada extendido12h Read Keyboard Shift Status Extended Lee el estado de las teclas de desplazamiento extendido17h Servicios de Impresora Usado por los programas de software para comunicarse con la impresora AH Descripcion Ing Descripcion Esp 00h Print Character to Printer Imprime un caracter a la impresora01h Initialize Printer Inicializa la impresora02h Check Printer Status Lee el estado de la impresora18h Ejecuta el IBM ROM BASIC Los computadores personales de originales de IBM contienen el BASIC en ROM para ser ejecutado por esta rutina en el evento de una falla en la carga boot LLamado por el BIOS19h Boot Strap Loader Despues del POST esta interrupcion es usada por el BIOS para cargar el sistema operativo1Ah Servicios del Real Time Clock RTC Reloj de Tiempo Real Llamado por programas de software para comunicarse con el RTC AH Descripcion00h Lee el RTC01h Ajusta el RTC02h Lee la hora del RTC03h Ajusta la hora del RTC04h Lee la fecha del RTC05h Ajusta la fecha del RTC06h Ajusta la alarma RTC07h Resetea la alarma del RTC1Bh Instalado por el sistema operativo automaticamente llamado por INT 9h cuando ha sido presionado Ctrl Break1Ch Llamado automaticamente por INT 08h disponible para el uso por programas de software cuando una rutina necesita ser ejecutada regularmente1Dh No debe ser llamado simplemente un puntero para la Tabla de Parametros del Video VPT que contiene datos sobre modos de video1Eh No debe ser llamado simplemente un puntero para la Tabla de Parametros del Disquete DPT conteniendo una variedad de informacion concerniente a las unidades de disquete1Fh No debe ser llamado simplemente un puntero para Tabla la Tabla de Caracteres de Graficos de Video VGCT que contiene los datos para los caracteres ASCII 80h a FFh41h Puntero de direccion Tabla de Parametros del Disco Fijo FDPT Primera unidad de disco 46h Puntero de direccion Tabla de Parametros del Disco Fijo FDPT Segunda unidad de disco 4Ah Llamado por el RTC para alarma70h IRQ8 Llamado por el RTC74h IRQ12 Llamado por el raton75h IRQ13 Llamado por el coprocesador matematico76h IRQ14 Llamado por el controlador IDE primario77h IRQ15 Llamado por el controlador IDE secundarioHooks del DOS EditarEl IBMBIO COM del PC DOS y el su equivalente el IO SYS del MS DOS se enganchaban hook al INT 13 para la deteccion del cambio del disco floppy llamadas para formateo de pistas corregir errores de limites en el DMA trabajar alrededor de problemas en el IBM PC ROM BIOS del 01 10 84 que modela el codigo FC antes de la primera llamada El vector de interrupcion 13 puede apuntar a un hook de software en vez de la rutina en el BIOS con el que algunos virus bulgaros son conocidos para usar en contra del software de monitoreo de virus 1 INT 18h Ejecuta el BASIC en ROM EditarEl INT 18h tradicionalmente saltaba a una implementacion de BASIC almacenada en ROM el Cassette BASIC Esta llamada tipicamente seria invocada si el BIOS no podia identificar ningun volumen booteable en el inicio En el momento en que el IBM PC fue lanzado en 1981 el BASIC en ROM fue una caracteristica clave A medida que el tiempo paso y el BASIC ya no fue despachado en todos los PC esta interrupcion simplemente exhibiria un mensaje de error indicando que no fue encontrado ningun dispositivo booteable el famoso No ROM BASIC o un mensaje mas explicativo en versiones posteriores del BIOS En otras versiones del BIOS se solicitaba al usuario insertar un volumen booteable y presionar una tecla y despues que el usuario lo hiciera retornaria al bootstrap loader para tratar de cargar de nuevo Vease tambien EditarBIOS IBM PC ROM BIOS Direcciones base de entrada salida IBM PC DOS MS DOS IBM BASICReferencias Editar Interrupt List part 4 of 5 www2 informatik uni halle de Archivado desde el original el 2 de septiembre de 2013 Consultado el 3 de octubre de 2016 Enlaces externos EditarThe x86 Interrupt List a k a RBIL Ralf Brown s Interrupt List Embedded BIOS User s Manual https web archive org web 20090401205853 http hdebruijn soo dto tudelft nl newpage interupt out 0100 htm Turbo Pascal examples for reading sectors Datos Q1139756 Obtenido de https es wikipedia org w index php title Llamada de interrupcion del BIOS amp oldid 134971881, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos