0

私はスタックとその実装を理解しようとしていますが、最も悩まされているのは、「スタックがマイクロプロセッサの割り込みサービスの FILO 構造であることがなぜ重要なのですか?」ということです。スタックの概念を理解する前に、まず何を理解する必要がありますか? 誰でもこれについて包括的な説明を教えてください。ありがとうございました

4

2 に答える 2

0

FILO は、アクセスする前にスタック内のデータを再構築できるため便利です。具体的には、FILO を使用すると、物事を確実に元に戻すことができます。内部要素が外部要素の前に返される状況がある場合 (再帰ではよくあることですが)、FILO は完璧です。

http://www.i-programmer.info/babbages-bag/263-stacks.html?start=2 FILO パラダイムの有用性に関する優れた説明があります。

割り込みに関しては、サブルーチンが何よりも先に割り込みを呼び出すというユーティリティがあります。

実際には、FILO が割り込みに役立つ理由がいくつかあります。http://www.eee.metu.edu.tr/~cb/e447/Chapter%204%20-%20v2.0.pdfに概念の紹介があります。1 つの例は、プログラムからレジスターを取り出し、逆の順序でプログラムに復元することが望ましい場合です。

この記事には、FILO の正確な有用性を示すアニメーションがあります: http://users.ece.utexas.edu/~valvano/assmbly/stack.htm

于 2013-05-03T17:45:38.257 に答える
0

割り込みが呼び出されると、現在の内容 + 次の命令アドレスがスタックに格納されます。

1 つのネストされた割り込み (つまり、割り込み内の割り込み) が発生したと仮定すると、データ + 最初の割り込みの発生時に最初の割り込みの次のアドレスのようなものを順番に格納する必要があり、そこでいくつかの命令を実行し、次の割り込みに再び遭遇すると、ここで格納する必要があります。データ + 2 番目の割り込みのアドレス。戻る間、そこから割り込みが呼び出された最後のアドレスに戻ります。その割り込みが完了すると、最初の割り込み (FILO) に戻ります。

したがって、FILO を使用します。

于 2013-07-30T10:55:23.233 に答える