为什么8051中的程序计数器是16位而堆栈指针是8位?

时间:2019-08-17 10:52:14

标签: microcontroller 8051

为什么堆栈指针在8051中仅保留8位地址,而程序计数器却保留16位地址?

1 个答案:

答案 0 :(得分:3)

每个处理器都可以精心设计其指针的宽度。 PC和SP都是指针,分别指向要执行的指令和保存在堆栈中的内容。

8051的设计人员将指令存储器数据存储器分开。有更多的内存部分,但是堆栈位于后者中,因此足够。

  • 指令存储器:的最大大小为65536字节,无需进一步的“技巧”就可以对其进行访问。要解决此范围,您需要16位。
  • 数据存储器:,即使标准8051仅实现了128个字节,其最大大小也为256个字节。要解决此范围,您需要8位。

请记住,代码堆栈是不同的东西!

  • 代码包含所有指令(如果存在常量)。它主要由ROM组成,但可以是RAM。
  • 堆栈存储返回地址和保存的值。它必须是RAM。