私はスタックメモリの基本を理解していると思いますが、スタックを管理する方法のメカニズムを担当しているのはまだ完全には理解していません-それはコンパイラですか、CPUアーキテクチャですか? プログラミング言語に依存していますか?
たとえば、ARM では関数呼び出しでのスタックの使用を減らす傾向があることを読んだので、関数への引数は通常 4 つのレジスタを介して渡されます。ただし、これは他のCPUでも汎用レジスタを使用して実装できるようです。アーキテクチャはこの要求をどのように課すことができるでしょうか?
他の場所で、FORTRAN 77 ではスタックを使用しないことを読みました。
そして、スタックが上向き/下向きに成長するという問題があります。誰がそれを担当していますか?
全体的に、それはCPUに依存しており、どのように課されているのか知りたいですか? そうでなければ、誰がこれらの決定に責任がありますか?
ありがとう。