割り込みを使うとハングアップしてしまう場合がある平成21年4月9日 割り込みサービスルーチンの中で複雑なことをしようとすると、ハングアップしてしまうことがあります。 具体的にはポインタや配列を使うと、ほぼ確実に誤動作するようです。 この問題は、トラ技BIOSが、ユーザ定義割り込み処理ルーチンを呼び出す際に、DEレジスタを保存していないため起こると思われます。 (DEレジスタは関数の呼び出し側が保存しなければならないが、やっていないため) この問題を回避するには、割り込み処理ルーチンの先頭と最後で、push de と pop deのコードを埋め込んでください。具体的には次のようにします。
これで暴走することはなくなると思います。
|
Copyright(C) 2008 NAITOU Ryuji. All rights reserved. 無断転載を禁ず