为什么__inbyte使我的软件崩溃

Why does __inbyte crash my software?

本文关键字:软件 崩溃 我的 inbyte 为什么      更新时间:2023-10-16

我遇到了这个函数,我想知道它是做什么的,所以我写了下面的代码,用mingw32编译并在Wine和Windows下执行,在这两种情况下程序都崩溃了。

#include <stdio.h>
#include <stdlib.h>
#include <intrin.h>
int main()
{
 unsigned char j = __inbyte(0xABC); // example value
 printf("%in", j);
 return 0;
}

我已经在MSDN上查过了,但是我发现描述是模糊的。http://msdn.microsoft.com/en-us/library/732t2y37%28v=vs.100%29.aspx

unsigned char __inbyte(unsigned short Port);

在指令中生成,返回从port指定的端口读取的一个字节。

IN指令试图直接从CPU I/O端口读取一个字节。这是一个特权操作,并且(几乎)总是会失败,除非您处于主管模式(例如,在内核中)。

除非您打算编写内核驱动程序,否则您可以放心地忘记您曾经见过这个内在的