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