私はそれを読みました、8085
プロセッサの開始アドレスはです00000H
。一方8086
、プロセッサの開始アドレスはですFFFF0H
。
今、私はまた、メモリの上部がheap
下にある間にあることを学びましたstack
。私が今混乱しているのは、8085ではメモリがスタックから割り当てられているのに対し、8086ではヒープから割り当てられているかどうかです。
コンセプトをクリアするのを手伝ってください。ありがとう
私はそれを読みました、8085
プロセッサの開始アドレスはです00000H
。一方8086
、プロセッサの開始アドレスはですFFFF0H
。
今、私はまた、メモリの上部がheap
下にある間にあることを学びましたstack
。私が今混乱しているのは、8085ではメモリがスタックから割り当てられているのに対し、8086ではヒープから割り当てられているかどうかです。
コンセプトをクリアするのを手伝ってください。ありがとう
ヒープ割り当ては、アセンブリ言語よりも高レベル(C、Javaなど)の概念であり、808xアセンブリにはそのようなものはありません。メモリを「割り当て」ません。
一方、スタックは808xのネイティブコンセプトであり、無数のマイクロプロセッサ(および仮想マシン)であり、たとえば「CALL」を使用するたびに使用されます(PCがスタックにプッシュされます)。RETすると、リターンPCアドレスがスタックからポップされます。また、レジスタ/データをスタックにプッシュすることもできます。
8085の開始アドレスがなぜであるか0000H
(プロセッサは16ビットアドレスしかサポートしていないため、5ではなく4つのゼロ)については、このスレッドを参照してください。
スタックの場所について:変更SP
することで、スタックを好きな場所に移動できますが、スタックは下に向かって大きくなるため、アドレス空間の最後に移動するのが理にかなっています。