代码之家  ›  专栏  ›  技术社区  ›  S.S. Anne

所有BIOS中断列表

  •  0
  • S.S. Anne  · 技术社区  · 5 年前

    我在找我的电脑提供的BIOS中断列表。

    为了获得最常见的BIOS调用,有各种公共资源,但我希望能列出所有(可能不是很公共)BIOS调用的列表。

    我的目标是避免BIOS的反汇编。我也知道bios在其低级API中是相对相似的,因此API调用的列表也是相似的。

    0 回复  |  直到 5 年前
        1
  •  8
  •   Martin Rosenau    5 年前

    " Ralf Brown's interrupt list

    该站点列出了x86系统上常用的大多数中断:

    不仅列出了BIOS中断,还列出了常见程序使用的MS-DOS中断和中断。这包括一个列出Linux系统调用(中断0x80)的部分。

    ... 即请不要包括。。。

    不幸的是,您将不得不分离“常见的”BIOS中断,中断只存在于某些BIOS和MS-DOS中断您自己。

    ... 我最近的编辑。。。

    不幸的是,这样的API并不存在:

    BIOS不一定是一个软件。相反,一些硬件组件(如图形卡)可能有自己的固件。

    这样一个组件的固件通常没有自己的中断,但是它可以通过改变中断向量来增加BIOS中断的功能。

    图形卡的固件可以添加一个功能 AX=5678h int 10h 通过改变中断向量,使其指向以下代码段:

    new_int_10_vector:
        cmp ax, 5678h
        je new_function
    
        ; (In reality, the next line is not as simple as shown here)
        jmp original_int_10_vector
    
    new_function:
        ; Perform the "new" function "AX=5678h" of "int 10h"
        ; ...
        iret
    

    BIOS应该如何检测图形卡的固件添加了附加功能 最大值=5678小时 ?