如何读写硬件端口

时间:2010-04-28 16:00:17  来源:第二电脑网  作者:第二电脑网

  第二电脑网导读:e为返回值.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寄存器中的值辅给valuereturn value;}//------------------------------------------------...
  正文: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寄存器中的值写入端口
}


如何读写硬件端口》由第二电脑网原创提供,转载请注明:http://www.002pc.com/master/College/Language/VC/2010-04-28/13795.html


关键字:

关于《如何读写硬件端口》文章的评论

站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td