如何读写硬件端口

王朝other·作者佚名  2008-06-01
宽屏版  字体: |||超大  

BCB中利用__emit__函数可以直接将二进制程序代码嵌入程序中,这样就可以实现一些底层的操作。由于直接操作系统底层,这种方法可能会导致系统的不稳定。

下面是利用__emit__函数读写硬件端口的方法。

//读端口

//port参数为输入端口地址,value为返回值.

unsigned char __fastcall inportb(unsigned short int port)

{

unsigned char value;

__emit__(0x8b,0x95,&port); //把端口地址送到EDX寄存器中

__emit__(0x66,0xec); //从端口中读入数据到AL寄存器中

__emit__(0x88,0x85,&value); //把AL寄存器中的值辅给value

return value;

}

//---------------------------------------------------------------------------

//写端口

//port参数为输出端口地址,value参数为输出值

void __fastcall outportb(unsigned short int port,unsigned char value)

{

__emit__(0x8b,0x95,&port); //把端口地址送到EDX寄存器中

__emit__(0x8a,0x85,&value); //把value送到AL寄存器中

__emit__(0x66,0xee); //把AL寄存器中的值写入端口

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有