程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> BCB中如何讀寫硬件端口

BCB中如何讀寫硬件端口

編輯:關於C++

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寄存器中的值寫入端口
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved