快速业务通道

BCB中如何读写硬件端口

作者 佚名技术 来源 程序设计 浏览 发布时间 2012-06-30

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.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号