3
我遇到了這個函數,我想知道它做了什麼,所以我寫了下面的代碼,用mingw32編譯並在Wine和Windows下執行,在這兩個程序都崩潰了。爲什麼__inbyte會使我的軟件崩潰?
#include <stdio.h>
#include <stdlib.h>
#include <intrin.h>
int main()
{
unsigned char j = __inbyte(0xABC); // example value
printf("%i\n", j);
return 0;
}
我在MSDN上看過它,但我發現描述是模糊的。 http://msdn.microsoft.com/en-us/library/732t2y37%28v=vs.100%29.aspx
unsigned char __inbyte(unsigned short Port);
在指令中生成指令,返回從Port指定的端口讀取的一個字節。
即使你正在編寫驅動程序,通常還有一些OS例程以獨立於體系結構的方式執行這種操作。 – 2013-04-09 20:11:30
正確 - 在已有驅動程序的少數平臺設備之外,大多數可能要寫驅動程序的設備都是通過PCI/PCIe/USB訪問的,而不是直接的I/O端口。 – duskwuff 2013-04-09 20:48:30