戏说BIOS之PCI SCAN
- 格式:doc
- 大小:421.00 KB
- 文档页数:11
bios怎么设置pciPCI(Peripheral Component Interconnect)是一种由英特尔(Intel)公司1991年推出的用于定义局部总线的标准。
那么大家知道bios怎么设置pci吗?今天店铺与大家分享下bios设置pci的具体操作步骤,有需要的朋友不妨了解下。
bios设置pci方法此部分描述了对PCI总线系统和PNP特性的配置。
PCI,即外围元器件连接,是一个允许I/O设备在与其特别部件通信时的运行时速度可以接近CPU自身速度的系统。
此部分将涉及一些专用技术术语,我们强烈建议非专业用户不要对此部分的设置进行修改。
Plug and Play Aware O/S (即插即用操作系统)当设定为Yes, BIOS 将只会安装用于系统引导的即插即用外接卡(VGA,IDE, SCSI)。
剩余的外接卡的安装将由即插Windows? 98,2000 或者ME。
如果设置No, BIOS 会安装所有的即插即用外接卡。
如果您的操作系统是即插即用的,选择Yes。
Clear NVRAM (清除NVRAM数据)ESCD(扩展系统配置数据),NVRAM(非挥发性随机存取存储器)是BIOS中以字符串格式为PNP或非PNP设备存储资源信息。
当设定为YES时,系统重启后将ESCD NVRAM复位并将设置重新设置为NO。
PCI Latency Timer (PCI延迟时钟)此项控制每个PCI设备可以掌控总线多长时间,直到被另一个接管。
当设置为较高的值时,每个PCI设备可以有更长的时间处理数据传输,如此可以增加有效的PCI带宽。
为了获取更好的PCI效能,您可将此项设为较高的值。
可选的设置值范围是从32到248,以32为单位递增。
PCI IDE BusMaster (PCI IDE总线控制)此项设定为Enabled可以设定PCI总线的IDE控制器有总线控制能力。
设定值为:Disabled, Enabled。
Primary Graphics Adaptor (主图形适配器)此项用于指定哪片VGA卡是您的主图形适配卡。
BIOS设置图解教程我们来介绍⼀下Award Bios的设置,其实Award Bios和AMI Bios⾥⾯有很多东西是相同的,可以说基本上是⼀样的,虽然有些名字叫法不同,但是实际作⽤是⼀样的。
在前⽂中已经了解了⼀些Bios的基本知识,和设置,那么在这篇⽂章⾥⾯我就会更详细的介绍⼀下Bios的超频设置,希望对那些想超频但是⼜没有接错过超频的玩家能有⼀些帮助。
和AMI Bios⼀样,再开机画⾯时按下“Del”键进⼊Bios设置菜单(有些是按F1键):进⼊后⼤家会看到以下菜单,也有可能会有⼀些差别,但是基本上是差不多的,及算名字不同,但是基本上作⽤是⼀样的1.jpg⼤家可以⽤⽅向键移动光标,回车键确认,ESC键返回,⽤PageUp,PageDown和数字键键调整设置,在任何设置菜单中可以按下F10键退出并保存设置,这些都和AMI Bios设置差不多!那么就正是进⼊设置!⼀.SoftMenu Setup(软超频设置)2.jpg其实这个Soft Menu Setup,是升技主板独有的技术,这⾥提供了丰富的CPU外频、倍频调节(需要CPU⽀持)、AGP/PCI总线频率以及CPU/内存/AGP的电压调节频率等等。
这个项⽬相当于⼀些主板中的“Frequency/Voltage Control”前⾯是CPU的⼀些基本信息显⽰,下⾯的选项就是CPU超频的主要选项了!1. CPU Operating Speed(CPU外频设置):这个项⽬根据你所使⽤的处理器型式以及速度来显⽰该处理器的运作速度,您可以选择[User Define](使⽤者设定)的选项来⼿动输⼊其运作速度。
如图:3.jpg好了,到了这⾥我就先放下Bios的设置引导了,在教⼤家超频之前先向⼤家解释⼀下什么叫超频以及超频的原理吧,这样才能让你能更好的进⼊下⼀步Bios设置超频!CPU超频,它的主要⽬的是为了提⾼CPU的⼯作频率,也就是CPU的主频。
⽽CPU的主频⼜是外频(FSB)和倍频(Multiplier Factor)的乘积。
BIOS 主菜单Standard CMOS Features(标准CMOS特征)使用此菜单可对基本的系统配置进行设定,例如时间,日期。
Advanced BIOS Features(高级BIOS特征)使用此菜单可对系统的高级特性进行设定。
Advanced Chipset Features(高级芯片组特征)使用此菜单可以修改芯片组寄存器的值,优化系统的性能表现。
Integrated Peripherals(整合周边)使用此菜单可对周边设备进行特别的设定。
Power Management Setup(电源管理设定)使用此菜单可以对系统电源管理进行特别的设定。
PNP/PCI Configurations(PNP/PCI 配置)此项仅在您系统支持PnP/PCI时才有效。
PC Health Status(PC当前状态)此项显示了您PC 的当前状态Frequency/Voltage Control(频率/电压控制)此项可以规定您的频率和电压设置。
Load Fail-Safe Defaults(载入故障安全缺省值)使用此菜单载入工厂默认值作为稳定的系统使用。
Load Optimized Defaults(载入高性能缺省值)使用此菜单载入最好的性能但有可能影响稳定的默认值。
Set Supervisor Password(设置管理员密码)使用此菜单可以设置管理员的密码。
Set User Password(设置用户密码)使用此菜单可以设置用户密码。
Save & Exit Setup(保存后退出)保存对CMOS的修改,然后退出Setup程序。
xit Without Saving(不保存退出)放弃对CMOS的修改,然后退出Setup程序。
Standard CMOS Features标准CMOS特征Date(日期)日期的格式为<星期> <月> <日> <年>。
day 星期, 从Sun.(星期日)到Sat.(星期六), 由BIOS定义。
bios的pic通道一、BIOS简介BIOS(Basic Input/Output System,基本输入输出系统)是计算机硬件与操作系统之间的桥梁,它负责管理计算机硬件的初始化、自检以及系统启动等任务。
在BIOS中,有许多通道用于控制不同类型的设备,其中PIC (Programmable Interrupt Controller,可编程中断控制器)通道就是其中之一。
二、PIC通道概述PIC通道全称为可编程中断控制器通道,主要用于处理计算机系统中的中断请求。
在BIOS中,PIC通道分为两个部分:主通道(Master)和从通道(Slave)。
主通道负责处理中断请求,而从通道则负责响应中断。
它们可以独立地配置和管理中断请求,具有较高的灵活性和可编程性。
三、BIOS中PIC通道的设置与应用在BIOS中,PIC通道的设置主要包括以下几个方面:1.开启PIC中断:进入BIOS设置界面,找到“Interrupt”或“IRQ”相关选项,将其设置为“Enable”以开启PIC通道的中断功能。
2.分配中断向量:为每个需要中断的设备分配一个中断向量,该向量与PIC通道的中断请求引脚(INTR)相连接。
3.设置中断优先级:根据设备的重要性和使用频率,在BIOS中设置中断优先级,以确保关键设备能够获得及时的中断响应。
4.配置中断屏蔽:针对特定设备,可以在BIOS中设置中断屏蔽位,以禁用或启用中断功能。
5.应用实例:在实际应用中,PIC通道常用于键盘、鼠标、打印机等外部设备的interrupt 1(IRQ1)和interrupt 12(IRQ12)的中断处理。
四、使用PIC通道的注意事项1.确保正确配置PIC通道的中断向量、优先级和屏蔽位,避免设备间的中断冲突。
2.在操作系统中,为每个设备分配正确的中断号,并与BIOS中的设置保持一致。
3.对于实时性要求较高的应用,注意优化中断处理程序,以减少中断响应的延迟。
五、总结BIOS中的PIC通道在计算机系统中发挥着重要作用,通过对PIC通道的设置和应用,可以实现对各种设备的中断管理和控制。
pci术概念-回复什么是PCI?PCI是英文Peripheral Component Interconnect的缩写,中文翻译为外部设备插槽。
它是一种计算机总线标准,用于连接外部设备与计算机的主板。
PCI接口是由全球互联网协会(PCI-SIG)开发和发布的,已经成为现代计算机的重要组成部分。
PCI的发展与进化:PCI标准最初是在1992年发布的,随后的几年内,这一标准快速发展,逐渐替代了ISA(Industry Standard Architecture)总线接口。
在1995年,PCI2.0的标准问世,增加了电源管理和处理PCI总线主动管理和控制能力。
接下来的几年内,PCI标准不断发展,发布了PCI-X和PCI Express的版本,以满足不断增长的计算机性能需求。
PCI的工作原理:PCI接口采用多总线架构,也就是指在计算机主板上会有多个PCI插槽,每个插槽都能插入一个或多个PCI设备。
PCI总线上的每个插槽都有一个唯一的编号,用于识别各个设备。
当计算机主机启动时,会自动进行插槽号分配,以确定每个设备的地址。
PCI的传输速度:PCI总线的速度通常以MHz(百万赫兹)为单位表示,早期的PCI 1.0标准速度为33MHz,每个总线周期传输32位(4字节)数据。
这意味着在每个时钟周期内,总线可以传输32位的数据,因此其最大传输速率为133MB/s。
随着技术的进步,PCI标准的速度相继提高,PCI 2.0的速度可以达到66MHz,PCI-X可以达到133MHz,而PCI Express可以达到2.5GHz的速度。
PCI的设备类型和插槽:PCI设备通常可以分为使用不同插槽的不同类型,包括标准PCI插槽(32位和64位)、PCI-X插槽和PCI Express插槽。
这些插槽有不同的外形和针脚排列,以适应不同设备的连接需求。
PCI的优缺点:PCI接口的优点之一是其通用性,兼容性非常好。
几乎所有的计算机主板都会提供PCI插槽,这使得用户可以轻松地连接各种PCI设备。
【我所认知的BIOS】—>PCI SCANLightSeed2009-5-121、PCI梗概Study到现在已经快一年了,目前我自己理解,觉得PCI device在整个计算机的应用中是很重要,及其重要的一个东东。
整由于它重要,所以可能一节我还讲不完,分几次把我所理解的PCI相关东东都总结一下。
PCI是外设元件互连标准(Peripheral Component Interconnect)那幺我们平时说的PCI device就是符合这个标准的设备。
(^.^废话)这个标准由英代尔(Intel)公司1991年推出的用于定义局部汇流排的标准。
此标准允许在电脑内安装多达10个遵从PCI标准的扩展卡。
最早提出的PCI汇流排工作在33MHz频率之下,传输带宽达到133MB/s(33MHz * 32bit/s),基本上满足了当时处理器的发展需要。
随着对更高性能的要求,1993年又提出了64bit的PCI汇流排,后来又提出把PCI汇流排的频率提升到66MHz。
目前广泛采用的是32-bit、33MHz的PCI汇流排,64bit的PCI插槽更多是应用于伺服器产品。
从结构上看,PCI是在CPU和原来的系统汇流排之间插入的一级汇流排,具体由一个桥接电路实现对这一层的管理,并实现上下之间的介面以协调资料的传送。
2、现实中的PCI平时我们说XX买了一个不错的PCI显卡,YY买了一个PCI to USB的适配器,那幺它们都爲什麽会有个PCI三个字呢?是因为他们都是插在PCI插槽上,普通主板上的PCI插槽如图1.1图1.1普通的PCI插槽3、PCI设备要运作,我们应该怎幺做?PCI设备要运作,那幺就需要PCI SCAN。
******************引用start**********************[Why need PCI SCAN]现在的computer system泰半由许多PCI devices所组成,因此,BIOS POST中另一个重要的task is : PCI_SCAN !!!它代表的是: BIOS会扫瞄whole system,找出所有的PCI devices; initial them and build a linked list of PCI devices.在此list中的每一个node都代表一个PCI device,且含有其characteristics !Ex. Vendor ID,Device ID, PFA,Option ROM exist or NOT,...etc.一旦建好此表,以后的tasks随时都可以参考!!!所以, after PCI_SCAN,有两件事完成了:1. PCI device initialization;device config registers(Part A) are correctly set ...2. One data structure is built to describe the PCI devices in whole system(建在memory中)这也是属于kernel code part ^_^ ( system一般很少hang at this stage...) ******************引用end***********************以上引用自<小华的部落格>连接:/2007/10/bios-pci-scan-9.html到这里可能多半的人都会想到那幺怎幺去scan这些PCI device呢?4、PCI device scan4.1PCI设备的configuration space是什麽顾名思义,PCI设备的configuration space是用来配置PCI device的。
bios识别nic卡过程
在计算机系统中,BIOS(Basic Input/Output System)是系统引导时运行的固件,负责初始化硬件和加载操作系统。
在识别网络接口卡(NIC,Network Interface Card)的过程中,BIOS主要通过以下步骤进行:
1. 硬件检测和初始化:BIOS首先对计算机的硬件进行检测和初始化,包括主板、处理器、内存、扩展卡等。
在这个过程中,也会检测和初始化连接到计算机的NIC卡。
2. PCI/PCIe总线扫描:大多数NIC卡连接到计算机主板上的PCI(Peripheral Component Interconnect)或PCI Express(PCIe)总线上。
BIOS会扫描这些总线,检测连接到它们上的设备,包括NIC 卡。
3. 设备初始化和资源分配:一旦检测到NIC卡,BIOS会对其进行初始化,并分配必要的资源,例如内存地址和中断。
这确保操作系统在启动后可以与NIC卡进行通信。
4. PXE(Preboot eXecution Environment)启动:如果计算机配置为支持PXE启动,BIOS可能会尝试通过网络引导启动。
在这种情况下,BIOS会识别并使用NIC卡以通过网络获取操作系统引导信息。
5. 设备顺序设置:BIOS中通常有一个设置,允许用户配置设备启动的顺序。
用户可以指定NIC卡是否应该作为启动设备,并确定其在启动顺序中的位置。
需要注意的是,BIOS负责硬件的初始化和基本设置,但对于NIC 卡的高级配置和驱动程序加载,则主要是由操作系统负责的。
在操作系统启动后,相应的网络驱动程序将被加载,进一步配置和管理NIC 卡的功能。
PCIE 设备扫描的过程初步了解完PCI总线标准之后,我们接下来正式开始PCIe设备的漫游之旅。
从我们按下PC的电源按钮开始,BIOS就接管系统控制权开始工作,它会先进行一些内存和设备的初始化工作(当然,也包括我们的PCI设备),由于商业上的原因,Phoenix等厂商的BIOS代码需要授权协议,在此,我们以另外一个款开源BIOS(openbios)为例,来剖析BIOS中,我们的PCIe设备是如何被找到以及初始化的。
PCI设备的扫描是基于深度优先搜索算法(DFS:Depth First Search),也就是说,下级分支最多的PCI桥将最先完成其子设备的扫描。
下面我们以图片来具体说明,BIOS是如何一步步完成PCI 设备扫描的。
第一步:PCI Host 主桥扫描Bus 0上的设备(在一个处理器系统中,一般将与HOST主桥直接相连的PCI总线被命名为PCI Bus 0),系统首先会忽略Bus 0上的D1,D2等不会挂接PCI桥的设备,主桥发现Bridge 1后,将Bridge1 下面的PCI Bus 定为Bus 1,系统将初始化Bridge 1的配置空间,并将该桥的Primary Bus Number 和Secondary Bus Number寄存器分别设置成0和1,以表明Bridge1 的上游总线是0,下游总线是1,由于还无法确定Bridge1下挂载设备的具体情况,系统先暂时将Subordinate Bus Number设为0xFF。
如下图所示:第二步:系统开始扫描Bus 1,将会发现Bridge 2。
系统将Bridge 2下面的PCI Bus定为Bus 2,并将该桥的Primary Bus Number 和Secondary Bus Number寄存器分别设置成1和2,和上一步一样暂时把Bridge 2 的Subordinate Bus Number设为0xFF。
如下图所示:第三步:系统继续扫描Bus 2,将会发现Bridge 4。
BIOS级的涉密计算机硬件安全防护引言为了防止涉密信息、重要的业务数据敏感信息、信息载体、信息处理过程的外泄,涉密计算机或者保存重要信息、数据的计算机将采取必要的安全防护措施。
计算机安全防护包括物理安全策略、访问控制策略、加密等各类技术,目前市面上有很多种类的防护产品特别是软件产品都可以提供如访问控制、移动存储设备使用控制、外部连接设备使用控制、网络连接控制等技术,但这类产品提供的技术不包含物理安全防护措施,而且存在诸多被绕过的可能。
虽然很多软件产品因此增强了自身的安全保护技术,但重新安装操作系统便可以使软件防护失效。
本文介绍了一种基于BIOS硬件实现的计算机安全防护策略和实现方法,能够提供包括物理安全策略在内的彻底的安全防护。
B10S级的计算机防护技术原理简介计算机在开机或重启后,CPU即跳转到系统BIOS的启动代码处开始执行。
系统BIOS的启动代码首先要做的事情就是关闭中断并进行POST(PowerOnSelfTest),然后进行显卡初始化、内存测试、标准硬件设备检测,之后系统BIOS内部的支持即插即用的代码将开始检测和配置系统中安装的即插即用设备,为已安装的PCI设备分配中断、DMA通道、存储空间和I/O端口等资源,并搜索扩展设备上是否存在ROM。
如果存在将执行ROM里的程序。
最后,BIOS打开不可屏蔽中断并调用INT19h系统中断引导操作系统。
从计算机的启动过程可以看到,如果想要在操作系统启动之前获得计算机的控制权,实现对计算机各种硬件设备和输入输出接口的接管,就必须利用BIOS的上述特性,即在PCI扩展卡上的ROM芯片中存储具有进行访问控制等安全防护功能的程序,当计算机开机或重启时,BIOS就会将ROM中的控制程序自动加载到内存并执彳亍o1.PCI扩展ROM概述嵌入在主板PCI插槽上的PCI器件或PCI扩展卡都是PCI设备。
《PCI局部总线规范》中提供了这样一种机制,即允许PCI设备携带一个与系统内存空间无关的扩展ROM,在其中存放一些信息和程序代码,以用于设备的初始化和系统的启动。
戏说BIOS之PCI SCAN1. IntroductionPCI由intel公司在1990年前后开发的,后续经过若干年的发展以及标准化,它已然成为server&pc上的标准总线。
PCI以其出色的设计以及不错的通信速率在计算机领域攻城掠地,不断的取代诸如MCA,ISA,EISA,VESA,NuBus等传统总线。
PCI相对于传统总线有非常多的优点,如:1.它是数据总线和地址总线是分时复用的,这样减少了pin脚节省了空间,而且这样也可以方便实现突发式数据传输。
2.它是即插即用的(plug & play),当device插入系统时,系统会自动对device进行资源分配并加载对应driver,而传统的ISA device则需要做复杂的手工配置。
3.中断共享,传统的总线有一个致命的缺陷就是它们是中断独占的,本来系统的中断就非常紧缺所以增加新的device会出现中断不够使用的麻烦,而pci irq routing 机制使得不同的device irq共用成为现实。
可是技术的发展总是长江后浪推前浪,前浪死在沙滩上 ! PCI又逐渐被更好的总线PCIE所取代渐渐退出PC 的历史舞台,后续我会再去研究一下PCIE。
2. PCI Arch可能是软体背景的原因,因此我看PCI spec也会习惯性的使用软件设计的视角去理解PCI的设计(我觉得有关设计、架构的理论应该是相通的,正如软件中经典的design pattern的思想来源于建筑学一样)。
我的视角里PCI同经典的接口编程或者插件式设计非常接近。
接口本质上是一组规则的集合它是对同类事物行为上的表示,它的主要目标是实现相同类别的不同对象行为上的多态性。
面向接口的编程是OO思想的精髓所在。
它的好处体现在哪里呢?首先它增强了系统的灵活性,只要遵循接口定义的规则,系统的底层实现部分就可以灵活的替换、扩充如:PCI总线定出了设备的统一的硬件接口,这样遵循该接口pci device就可以方便的扩展入系统;另外相同的接口可以接入不同厂家的设备就像同样的sata接口可以接三星的光驱也可以接LG的。
其次规则给出以后,实现该接口的部件就会有共通的接口但是不同的实现,如此系统端就可以通过接口灵活实现对部件的操作配置。
PCI定义出了三种规格的配置空间,根据配置空间提供的信息系统端可以方便的识别设备的种类,功能甚至于厂商和版本号,获得非常丰富的系统端知识;而且该功能也使得设备可以动态的配置资源进而能够做到plug & play。
3. PCI ScanPCI Configuration Space是大小为256字节的一块空间,它由header 和device specific两个部分组成,其中header部分是固定的而device specific部分则是与device相关的,不同的device会有不同的layout。
配置空间被用于配置,初始化以及灾难性错误处理的功能。
下图1是type 00h Configura-tion Space Header:图1PCI Scan的重要任务就是读出该256bytes 配置空间,那么如何读取这部分的信息呢? 有下述两种方法:1.使用0CF8-0CFB, 0CFC这两组IO port存取PCI Configuration Space。
将总线号、设备号、功能号和寄存器号组合成一个双字送到配置地址端口(CF8H-CFBH),然后读写配置数据端口(CFCH)即可获得配置空间的数据,下图2是配置地址寄存器的格式定义:图2所以我们先要build一个config-address然后再去透过端口存取配置空间。
下述代码用于build config-address:;---------------------------------------------------------------------------- ; build _pci_cfg_add:; build pci config address; used registers: eax,ebx;-----------------------------------------------------------------------------build_pci_cfg_add proc nearpush eaxpush ebxxor eax,eaxxor ebx,ebxmov PCI_CFG_ADDRESS,80000000hmov al,PCI_BUS_NUMshl ax,08hmov bl,PCI_DEV_NUMshl bx,03hor ax,bxor al,PCI_FUN_NUMshl eax,08hor PCI_CFG_ADDRESS,eaxpop ebxpop eaxretbuild_pci_cfg_add endpconfig-address准备好以后接下来就是透过IO port读取pci configuration space了,下述代码演示读取的过程:;---------------------------------------------------------------------------- ; read_cfg_space; read pci config space use io port; Called with: NULL; used registers: eax,edx; returned regs: eax;-----------------------------------------------------------------------------read_cfg_space proc nearmov eax,PCI_CFG_ADDRESSor eax,edxmov dx,PCI_CFG_APORTout dx,eaxmov dx,PCI_CFG_DPORTin eax,dxretread_cfg_space endp理论上PCI bus支持256条总线,每条总线支持32个device,每个device 又支持8个function,所以我们组合出上面所有的可能就可以遍历出所有的PCI 设备了。
可是实际上PC上面PCI 总线通常只有1条,最多也不会超过四条所以我们只扫4条总线就可以了,不用做太多的无用功。
有了前面的准备,我们就来实现一个类似RU中的PCI scan吧,下图3就是我写的pciscan 运行的状况了:图3在该界面下按下esc就会退出该程序;移动↑↓键就可以选中device,然后敲enter就会看到该device的Configuration space 如下图4所示图4当前界面下如果想返回到上一个界面只需要按下F6就会回到图3的界面了。
2. Call PCI BIOS int1A同样也可以获取PCI device的信息。
其中AH=B1h,AL=function id所有的function id如下所示:01h: INSTALLATION CHECK02h: FIND PCI DEVICE03h: FIND PCI CLASS CODE06h: PCI BUS-SPECIFIC OPERATIONS08h: READ CONFIGURATION BYTE09h: READ CONFIGURATION WORD0Ah: READ CONFIGURATION DWORD0Bh: WRITE CONFIGURATION BYTE0Ch: WRITE CONFIGURATION WORD0Dh: WRITE CONFIGURATION DWORD0Eh: GET IRQ ROUTING INFORMATION0Fh: SET PCI IRQ81h: INSTALLATION CHECK (32-bit)82h: FIND PCI DEVICE (32-bit)83h: FIND PCI CLASS CODE (32-bit)86h: PCI BUS-SPECIFIC OPERATIONS (32-bit)88h: READ CONFIGURATION BYTE (32-bit)89h: READ CONFIGURATION WORD (32-bit)8Ah: READ CONFIGURATION DWORD (32-bit)8Bh: WRITE CONFIGURATION BYTE (32-bit)8Ch: WRITE CONFIGURATION WORD (32-bit)8Dh: WRITE CONFIGURATION DWORD (32-bit)8Eh: GET IRQ ROUTING INFORMATION (32-bit)8Fh: SET PCI IRQ (32-bit)我们使用function id 09h就可以从configuration space 中读取出一个字,这样的操作明显简单的多了,只需call 一次int1a中断即可。
下述c代码演示了读取Vendor id的过程,如需读取其它部分只要算出具体config-address即可。
#include<stdio.h>#include<conio.h>#include<dos.h>int main(int argc,char** argv){union REGS reg;argc = argc;argv = argv;reg.x.ax = 0xB109;reg.x.bx = 0x80000000;reg.x.di = 0;int86(0x1A, ®, ®);if(reg.x.cx != 0xffff){printf("Vendor : %4.4X\n", reg.x.cx);}return 0;}程序运行结果如下图5所示:图5最后依旧是开放完整的source code和可执行文件供有兴趣的朋友下载。
Enjoy it!That’s all! Peter。