Question

I read in the Intel developer manual that "int 0x10" means Floating-Point Error, but somewhere I read in bios service "int 0x10" means video display services, is it contradictory?

Was it helpful?

Solution

In X86 architecture, interrupt handlers are defined in the Interrupt descriptor table (IDT).

In read mode, The IDT consists of 256 four-byte real mode pointers. When system startup, BIOS will initialize this IDT to provide some basic service for real mode programs (for example DOS code / OS boot code). The handlers are all defined in BIOS.

Later, the OS boot code may switch the processor into protected mode and load its new IDT. This time the IDT is an array of 8-byte descriptors stored in memory. From this point, OS start to handle interrupts instead of BIOS.

So there is no contradictory since the first int 0x10 is used to invoke BIOS service in real mode and then its handling is passed to OS to handle exceptions in protected mode.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top