簡體   English   中英

CPU如何知道來自IVT的中斷處理程序是BIOS函數還是映射到內存中的子例程

[英]How does the CPU know if an interrupt handler from an IVT is a BIOS function or a subroutine mapped in memory

根據我對中斷工作原理的基本了解,當調用軟件或硬件中斷時,CPU查找位於內存的前1024個字節中的IVT(在實模式下),獲取中斷處理程序地址並從該位置開始執行。 另外,據我了解,您可以覆蓋IVT中的值,以指向可以處理中斷的自定義子例程。

我不明白的是BIOS功能如何工作。 例如對於int 0x10 ,CPU如何知道中斷對應於BIOS函數,而不是映射到內存中的子例程(調用中斷處理程序,其地址存儲為4 * 0x10 )?

CPU不知道。 BIOS映射到內存。 存儲在4 * 0x10中的地址是BIOS中INT 10H處理程序的地址。

啟動時,BIOS初始化中斷表,使其指向BIOS例程。

如果需要,您可以保存存儲在4 * 0x10中的地址,並將其替換為您自己的INT 10H處理程序的地址。 順便說一下,我沒有建議...但是有可能。 這種事情在DOS中斷中很常見。 BIOS中斷的情況要少一些,但有時會這樣做。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM