首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么8051的程序计数器是16位,堆栈指针是8位在8051?

为什么8051的程序计数器是16位,堆栈指针是8位在8051?
EN

Stack Overflow用户
提问于 2019-08-17 10:52:14
回答 1查看 1.4K关注 0票数 0

为什么堆栈指针只保存8051中的8位地址,而程序计数器保存16位地址?

EN

回答 1

Stack Overflow用户

发布于 2019-08-18 12:10:21

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

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

  • 指令内存:--它的最大大小为65536字节,无需进一步的“技巧”即可访问。要解决这个范围,您需要16位。
  • 数据存储器:最大大小为256个字节,尽管标准8051中只有128个实现。要解决这个范围,您需要8位。

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

  • 代码包含所有指令(如果是当前常量的话)。它主要由ROM组成,但也可以是RAM。
  • Stack存储返回地址和保存的值。一定是RAM。
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57535586

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档