ハードウェアのスタック機能と、C言語のスタックとヒープは
名前と動作は似ていても別物。
C言語のスタックメモリは複雑だろ。auto変数や関数呼び出しや再帰とか。
ハードウェアの機能に丸任せできないだろ。