INT 13H


INT 13h es la abreviatura de la llamada de interrupción de BIOS 13 hexadecimal , el vigésimo vector de interrupción en un sistema informático basado en x86 (descendiente de IBM PC). El BIOS normalmente configura un controlador de interrupciones en modo real en este vector que proporciona servicios de lectura y escritura de disco duro y disquete basados ​​en sectores utilizando direccionamiento de sector de cabeza de cilindro (CHS). Los BIOS de PC modernos también incluyen funciones de extensión INT 13h, creadas por IBM y Microsoft en 1992, que brindan esos mismos servicios de acceso al disco utilizando direccionamiento LBA de 64 bits ; con adiciones menores, estos fueron cuasi-estandarizados por Phoenix Technologies y otros como el EDD (Unidad de disco mejorada ) Extensiones de BIOS.

INT es una instrucción x86 que dispara una interrupción de software , y 13 hexadecimal es el número de interrupción (como valor hexadecimal ) que se llama.

Las computadoras modernas vienen con BIOS INT 13h y funcionalidad UEFI que brindan los mismos servicios y más, con la excepción de UEFI Class 3 que elimina completamente CSM, por lo que carece de INT 13h y otras interrupciones. Normalmente, los controladores UEFI utilizan direcciones LBA en lugar de direcciones CHS.

En sistemas operativos de modo real , como DOS , llamar a INT 13h saltaría al código ROM-BIOS de la computadora para servicios de disco de bajo nivel , que llevarían a cabo operaciones de lectura o escritura de disco basadas en sectores físicos para el programa. En DOS, sirve como interfaz de bajo nivel para los controladores de dispositivos de bloque integrados para discos duros y disquetes . Esto permite que INT 25h e INT 26h proporcionen funciones absolutas de lectura / escritura de disco para sectores lógicos al controlador del sistema de archivos FAT en el kernel de DOS, que maneja solicitudes relacionadas con archivos a través de funciones API de DOS ( INT 21h ).

En sistemas operativos en modo protegido , como los derivados de Microsoft Windows NT (por ejemplo, NT4, 2000, XP y Server 2003) y Linux con dosemu , el sistema operativo intercepta la llamada y la pasa al mecanismo de E / S de disco nativo del sistema operativo. Windows 9x y Windows para trabajo en grupo 3.11 también omiten las rutinas del BIOS cuando se usa el acceso al disco de 32 bits . Además de realizar acceso a disco de bajo nivel, las llamadas INT 13h y las estructuras de datos del BIOS relacionadas también proporcionan información sobre los tipos y capacidades de los discos (u otros DASDdispositivos) conectados al sistema; cuando se inicia un sistema operativo en modo protegido, puede utilizar esa información del BIOS para enumerar el hardware del disco para que (el sistema operativo) pueda cargar y configurar los controladores de E / S del disco adecuados.

La interfaz INT 13h de modo real del BIOS original admite unidades de tamaños de hasta aproximadamente 8 GB utilizando lo que comúnmente se conoce como direccionamiento CHS físico . Este límite se origina en la interfaz de hardware del hardware del disco IBM PC / XT . El BIOS utilizó la dirección del sector de la cabeza del cilindro (CHS) proporcionada en la llamada INT 13h y la transfirió directamente a la interfaz de hardware. Se impuso un límite menor, alrededor de 504 MB, por la combinación de los límites de direccionamiento CHS utilizados por el BIOS y los utilizados por los discos duros ATA, que son diferentes. Cuando se combinan los límites de direccionamiento de CHS de BIOS y ATA (es decir, cuando se aplican simultáneamente), el número de sectores de 512 bytes que se pueden direccionar representa un total de aproximadamente 504 MB.