我在一個小程序中包含了一些示例ASM代碼來執行測試。C程序中的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代碼時崩潰段故障。 有人能告訴我這個小程序有什麼問題嗎?非常感謝。
這是什麼編譯器? – Ben 2012-04-26 09:36:31
我在linux上使用gcc – mike 2012-04-26 09:46:17