Skip to content

Instantly share code, notes, and snippets.

@oppai
Last active August 29, 2015 14:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save oppai/ee0cd81743d9e7b551fa to your computer and use it in GitHub Desktop.
Save oppai/ee0cd81743d9e7b551fa to your computer and use it in GitHub Desktop.
Lions本勉強会 第10章アセンブラトラップルーチン

トラップとは

ハードウェア割り込みと同じようになしくみで、CPUが例外的な処理を検知して割り込むもの。 また、優先度が最大で即座に実行される。 (例えば0除算などの例外的な処理)

ここでは3つの例を取り上げて説明している

  • バスタイムアウトでの割り込み
  • クロックでの割り込み
  • ユーザープログラムの割り込み

バスタイムアウトでの割り込み

fuibyte(814)はとりあえず無視で、fuiword(844)を追う。 ポイントはトラップが起こりうるのはmfpiの時で、”前(モード)のアドレス空間中の指定ワードの値をカレントスタックにプッシュする”時にメモリアクセスができなかった場合に、トラップが発生する。 mfpiが実行される前にnofault(885)を設定している。

(引用 http://d.hatena.ne.jp/takahirox/20110209/1297257779)

参考

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment