ウォンツテック

そでやまのーと

OS作成 - シェル編

exitシステムコールを実装中にBOUND範囲超過例外(0x05)なるものに初めて遭遇しました。IA-32デベロパーズマニュアルを参照すると

BOUND 命令が実行された時点でBOUND 範囲超過フォルトが発生したことを示す。
BOUND 命令は、符号付きの配列インデックスを、配列の上下バウンドの符号付きリ
ミットを基準にチェックする。配列インデックスが配列のバウンド内部にない場合
は、BOUND範囲超過フォルトが発生する。

となってますが、BOUND命令ってなに?gccが勝手に入れているんだろうか。

追記

system call中に単純にasm("int $0x20")で割り込みしてただけのを止めてきっちり記述したら出なくなりました。