我在一个小程序中包含了一些示例 ASM 代码来进行测试。
我的程序是:
#include <stdio.h>
static inline
unsigned char inb (int port) {
unsigned char data;
asm volatile("inb %w1,%0" : "=a" (data) : "d" (port));
return data;
}
int main()
{
printf("hello world %d\n", inb(22));
return 0;
}
当我运行该程序时,它在执行 ASM 代码时因分段错误而崩溃。有人能告诉我这个小程序有什么问题吗?非常感谢。