テストを行うために、いくつかのサンプル 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 コードの実行時にセグメンテーション違反でクラッシュします。この小さなプログラムのどこが悪いのか誰か教えてもらえますか? どうもありがとう。