查看“PNP Calls In Protected Mode”的源代码
←
PNP Calls In Protected Mode
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
{{Stub}} 是的,就像PCI bios32调用一样,你可以在[[Protected Mode|保护模式(pmode)]]下进行PNP调用。 一旦有了[[BIOS32]]服务目录(参见PCI示例例程),就可以使用PnP自动配置魔术调用它。再次注意寄存器接口的串联组件。 <source lang="C"> void bios32_scan_pnp_entry(void) { uint32_t cseg_size, offset, base_addr; /* 调用PCI地址的BIOS32 BSD BSD调用以RETF而非RET终止*/ /*eax加载了“$ACF”魔法*/ asm("movl $0x46434124, %%eax\n" "lcall _bios32_call\n" : "=c" (cseg_size), "=d" (offset), "=b" (base_addr) : : "eax", "ebx", "ecx", "edx", "ebp", "memory" ); /* 设置pnp_code32,pnp_data32等的两个新选择器 */ } </source> 一旦确定pmode应用程序存在PNP BIOS调用,就可以调用PCI v2.0c+调用(参见中的INT 0x1A,功能0xB400到0xB407[http://www.ctyme.com/intr/int-1a.htm RalfBrown的INT列表])。 注意,似乎没有多少BIOS支持PnP Bios32调用,因此你可能不得不直接对PnP BIOS使用pmode16调用(需要286个TS)。 [[Category:X86]]
本页使用的模板:
模板:Stub
(
查看源代码
)
返回至“
PNP Calls In Protected Mode
”。
导航菜单
个人工具
登录
命名空间
页面
讨论
变体
已展开
已折叠
查看
阅读
查看源代码
查看历史
更多
已展开
已折叠
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息