3

我读到,在8085处理器的起始地址是00000H。其中,8086处理器的起始地址为FFFF0H

现在我还了解到,内存的顶部是heap,而下面是stack. 我现在感到困惑的是,是否在 8085 中,内存是从堆栈分配的,而在 8086 中是从堆分配的?

请帮我弄清楚这个概念。谢谢

4

2 回答 2

2

堆分配是比汇编语言更高级别的(C、java 等)概念,在 808x 汇编中没有这样的东西。您不会“分配”内存。

另一方面,堆栈是 808x 的原生概念,以及无数的微处理器(和虚拟机),例如每次使用“CALL”时都会用到它(PC 被压入堆栈)。当您 RET 时,返回的 PC 地址将从堆栈中弹出。您也可以将寄存器/数据推送到堆栈上。

于 2012-02-15T13:50:41.730 回答
0

有关为什么 8085 的起始地址是0000H(即四个零,而不是五个,因为处理器仅支持 16 位地址)的讨论,请参阅此线程

至于堆栈的位置:通过修改SP,您可以将堆栈移动到您想要的任何位置,但是由于它向下增长,因此将其移动到地址空间的最末端是有意义的。

于 2012-02-15T13:50:45.897 回答