int命令ってマシン語になるとどうなんの?
アッセンブラのint命令ってマシン語になるだとどうなるの?
とか、疑問におもってしまったのですよ
int命令により、割り込み手続きをおこなうのだけど、
Linuxの場合は、汎用レジスタA、B、C、D(など)にパラメータをセットして、
int 0x80を発行するわけだが、
これをCPU的にみると、
1)帰りアドレスをスタックに退避させる
2)CSをベース+0x80をオフセットなる場所に割り込みのコードが配置されているんかな?
ES、CS、SS、DS、FS、GSの扱いは?
3)汎用レジスタA(システムコールの番号がセットされている)はどう扱われるの?
http://d.hatena.ne.jp/toshi_hirasawa/20081105/1225885030
ああ、よくわからん
だれか教えてください
wikipediaでみてみると
ハードウェア割り込み(割り込み要求端子の変化によりCPU外部から発生) ノンマスカブル割り込み マスカブル割り込み ソフトウェア割り込み(CPU内部の要因で発生) (狭義の)ソフトウェア割り込み(CPUの割り込み命令によって発生) 例外(割り込み命令以外の要因で発生) どちらの割り込みにせよ、CPUに割り込みが生じると、現在実行している処理(命令)を停止して別の処理を実行する。 割り込み後に実行される処理は、 割り込みハンドラ もしくは 割り込みサービスルーチン(Interrupt Service Routine, ISR) と呼ばれる。 また、割込処理が終了しても、 元の処理(割り込みが生じた時点に実行していた処理)に戻ってこられるように、 元の処理の場所(アドレス)に関する情報(および元の処理の作業状態、コンテキストと呼ばれる)を(多くの場合スタックに)保存しておく。 割込処理を実行するために、どこの場所(アドレス)に飛べば良いかを示す情報は、 割り込みベクタと呼ばれるテーブルに書かれている。 割り込みベクタには、飛び先の命令のアドレスを書くこともあれば、ジャンプ命令を書くこともある。
ふーむ、ソフトウェア割り込みの場合、割り込みベクターテーブル
ってありうるんだろうか?
ここに答えが書いてあるかどうかは知らないケド、ご紹介
アッセンブラの教科書 サポートページ
http://ruffnex.oc.to/kenji/bkasm/
お、いいもんみっけたかも
http://www.mars.dti.ne.jp/~otk/bak/
これの2回目あたりでインターラプトの話をしている、
ここなら答えがみつかるかも、いい感じです