最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

PCI BIOS调用深度解析

来源:动视网 责编:小OO 时间:2025-09-29 04:23:11
文档

PCI BIOS调用深度解析

PCIBIOS调用通过执行INT1AH指令可以调用16位的PCIBIOS,也可以直接在物理寄存器位置000FFE6EH调用PCIBIOS。32位BIOS的调用要通过一个远程调用来实现。在这两种情况下,调用这都必须首先将需要的请求参数装入处理器的寄存器组。在入口AH寄存器必须包含PCI的功能ID:B1H,AL寄存器必须包含PCI下级功能识别器。1、PCIBIOS的存在性   入口参数:   AH=B1H   AL=01H   出口参数:   EDX:返回值为“PCI”。字符“P”存放在DL;字符
推荐度:
导读PCIBIOS调用通过执行INT1AH指令可以调用16位的PCIBIOS,也可以直接在物理寄存器位置000FFE6EH调用PCIBIOS。32位BIOS的调用要通过一个远程调用来实现。在这两种情况下,调用这都必须首先将需要的请求参数装入处理器的寄存器组。在入口AH寄存器必须包含PCI的功能ID:B1H,AL寄存器必须包含PCI下级功能识别器。1、PCIBIOS的存在性   入口参数:   AH=B1H   AL=01H   出口参数:   EDX:返回值为“PCI”。字符“P”存放在DL;字符
PCI BIOS 调用

通过执行INT 1AH指令可以调用16位的PCI BIOS,也可以直接在物理寄存器位置000FFE6EH调用PCI BIOS。32位BIOS的调用要通过一个远程调用来实现。在这两种情况下,调用这都必须首先将需要的请求参数装入处理器的寄存器组。在入口AH寄存器必须包含PCI的功能ID:B1H,AL寄存器必须包含PCI下级功能识别器。

1、PCI BIOS的存在性

    入口参数:

    AH=B1H

    AL=01H

    出口参数:

    EDX:返回值为“PCI”。字符“P”存放在DL;字符“C”存放在DH;字符“I”存放在EL;EH中方一个空格符

    AH:存在状态。如果EDX设置适当,则00H表示存在PCI BIOS。

    AL:硬件机制

    BL:接口版本

    CL:系统中最后一个PCI局部中线的号码

    CF:状态标志。为1表示没有PCI BIOS,为0表示存在PCI BIOS。

    如果CF被清除且AH的内容为00H时,为了确定PCI功能设置的有效性,对EDX内容的检查仍然是必须的。BX进一步指出版本号,版本号以BCD码形式存在。如v2.10,BH将返回02H,BL将返回10H。

    AL的返回值标识与访问配置空间和产生PCI特殊周期相关的支持平台的特定硬件字符。PCI规范为访问配置空间定义了两种硬件机制,AL返回值的位0与位1表示当前平台支持那种机制。位0等于1时支持1#机制,位1等于1时表示支持2#机制,位2、3、6、7是保留位,返回值必须是0。

    PCI规范中也为特殊周期的产生定义了硬件机制,AL的返回值的位4、5两位指出机制类型。位4为1表示支持基于1#配置机制的特殊周期产生;位5为1表示支持基于2#配置机制的特殊周期产生。

    CL的返回值表示系统中最后一个PCI局部总线的号码,PCI局部中线的号码从0开始,到CL中的返回值为止。

2、PCI设备检测

     入口参数:

    AH=B1H

    AL=02H

    CX=设备识别号,从0~~65535

    DX=供应商识别代码,从0~~65534

    SI=索引号,0~~N

    出口参数:

    BH=总线号

    BL=高5位为设备号,低3位为功能号

    AH=返回3种不同的代码。00H表示检测成功,86H表示未发现要检测的设备,83H表示入口参数中的供应商代码无效

    CF=状态标志。为1表示检测错误,为0表示检测成功。

    如果在该功能调用中,使索引号从0开始以1为增量递增,直到AH中的返回码为86H为止,便可检测出供应商识别码与设备识别码相同的所有设备。

 3、PCI分类代码检测

    入口参数:

    AH=B1H

    AL=03H

    ECX=低三个字节为分类代码

    SI=索引号,0~~N

    出口参数:

    BH=总线号,0~~255

    BL=高5位为设备号,低3位为功能号

    AH=00H表示检测成功,86H表示未发现要检测的设备

    CF=1表示检测错误,0表示检测成功

    如果在该功能调用中,使索引号从1开始以1位增量递增,直到AH中的返回码为86H为止,便可检测出具有相同分类代码的所有设备。

4、特殊周期的产生

     入口参数:

    AH=B1H

    AL=06H

    BH=总线号,0~~255

    EDX=特殊周期数据

    出口参数:

    AH=00H表示特殊周期产生成功,81H表示不支持该功能

    CF=1表示错误,0表示成功

5、读配置字节

     入口参数:

    AX=B108H

    BH=总线号,0~~255

    BL=高5位为设备号,低3位为功能号

    DI=寄存器号,0~~255

    出口参数

    CL:读出的配置字节

    AH=00H表示成功

    CF=1表示错误,0表示成功

6、读配置字

    入口参数:

    AX=B109H

    BH=总线号,0~~255

    BL=高5位为设备号,低3位为功能号

    DI=寄存器号,取值为0、2、4、6、8

    出口参数

    CX=读出的配置字

    AH=00H表示成功,87H表示寄存器无效

    CF=1表示错误,0表示成功

7、读配置双字

    入口参数:

    AX=B10AH

    BH=总线号,0~~255

    BL=高5位为设备号,低3位为功能号

    DI=寄存器号,0、4、8、12

    出口参数

    ECX=读出的配置双字

    AH=00H表示成功,87H表示寄存器无效

    CF=1表示错误,0表示成功

8、写配置字节

    入口参数:

    AX=B10BH

    BH=总线号,0~~255

    BL=高5位为设备号,低3位为功能号

    DI=寄存器号,0~~255

    CL=写入的字节值

    出口参数

    AH=00H表示成功

    CF=1表示错误,0表示成功

9、写配置字

    入口参数:

    AX=B10CH

    BH=总线号,0~~255

    BL=高5位为设备号,低3位为功能号

    DI=寄存器号,0、2、4、6

    CX=写入字的值

    出口参数

    AH=00H表示成功,87H表示寄存器无效

    CF=1表示错误,0表示成功

10、写配置双字

    入口参数:

    AX=B10DH

    BH=总线号,0~~255

    BL=高5位为设备号,低3位为功能号

    DI=寄存器号,0、4、8、12

    ECX=写入双字的值

    出口参数

    AH=00H表示成功,87H表示寄存器无效

    CF=1表示错误,0表示成功

文档

PCI BIOS调用深度解析

PCIBIOS调用通过执行INT1AH指令可以调用16位的PCIBIOS,也可以直接在物理寄存器位置000FFE6EH调用PCIBIOS。32位BIOS的调用要通过一个远程调用来实现。在这两种情况下,调用这都必须首先将需要的请求参数装入处理器的寄存器组。在入口AH寄存器必须包含PCI的功能ID:B1H,AL寄存器必须包含PCI下级功能识别器。1、PCIBIOS的存在性   入口参数:   AH=B1H   AL=01H   出口参数:   EDX:返回值为“PCI”。字符“P”存放在DL;字符
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top