Pass auf.
Jede Hardware in deinem PC ist an eine sogenannte IRQ (Interrupt Request) Leitung angeschlossen. Diese IRQ-Leitungen führen alle zum PIC.
Wenn nun deine Hardware Daten hat, dann teilt sie das dem PIC über die IRQ-Leitung mit.
Der PIC wiederrum ruft dann eine Interrupt-Routine auf, welche sich dann darum kümmert, das die Hardware bedient wird. Das nennt man einen Hardware-Interrupt, da die Interrupt-Routine sogesehen von der Hardware aufgerufen wird.
Es ist aber auch möglich Interrupt Routine aus einem programm her auszurufen:
int 0x10
Somit kann man theoretiusch die selben Interrupt-Routinen aufrufen welche die Hardware aufruft. Nur spricht man hier nun von einem Software-Interrupt, weil die Interrupt-Routine eben von einem Programm aufgerufen wird.
EIne Interrupt-Routine ist eigentlich nichts anderes als ein kleines Programm, das einen bestimmten Zweck erfüllt. So sind die Interrupt-Routinen welche von der Hardware aufgerufen werden dazu gedacht die Hardware zu bedienen und mit dieser zu kommunikzieren. Dazu werden dann auch Ports innerhalb der Interrupt-Routine benuttzt.
Die BIOS-Ints sind ebenfalls nur kleine Programme die vom BIOS in den Speicher geladen werden und dann über Interrupt-Aufrufe genutzt werden können. Sogesehen sind die BIOS-Interrupts eine Art mini-OS.
Der Code der BIOS-Ints ist aber für Real-Mode 16 Bit geschrieben. Wenn du nun in den PMode wechselst, funktioniert dieser Code nichtmehr. Daher muss man sich dann eigene Treiber usw schreiben die die jeweilige Hardware bedienen.
Man kann auch Interrupt-Routinen schreiben die garnichts mit der hardware zu tun haben, sondern evtl. Speicher reservieren sollen usw.