【发布时间】:2012-04-26 09:34:02
【问题描述】:
我在一个小程序中包含了一些示例 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 代码时因分段错误而崩溃。 有人能告诉我这个小程序有什么问题吗?非常感谢。
【问题讨论】:
标签: c linux gcc x86 inline-assembly