找回密码
 立即注册
查看: 324|回复: 5

关于汇编中堆栈和ram的问题

[复制链接]
  • 打卡等级:常住居民III
  • 打卡总天数:164
  • 最近打卡:2025-05-01 11:07:38

8

主题

48

回帖

541

积分

高级会员

积分
541
发表于 2024-10-31 11:23:16 来自手机 | 显示全部楼层 |阅读模式
rt,51单片机中的用户ram是从30h-7fh,堆栈也是在这个区域中,有几个问题;1.请问如果用push/pop的堆栈区域的总容量是多少?是直接从30h开始连续存放吗?如果是这样的话那么通过直接寻址就能访问到堆栈中元素了,是不是和堆栈思想不符?
2. 堆栈的容量是固定的吗,会小于整体用户ram区容量吗?如果是的话如果自己用ram中非堆栈区作为自己的临时变量应该从多少地址开始?

谢谢
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:164
  • 最近打卡:2025-05-01 11:07:38

8

主题

48

回帖

541

积分

高级会员

积分
541
发表于 2024-10-31 12:01:42 来自手机 | 显示全部楼层
顶起来求回复
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:455
  • 最近打卡:2025-05-01 08:13:06
已绑定手机

27

主题

341

回帖

1687

积分

金牌会员

机长

积分
1687
发表于 2024-11-1 10:07:52 | 显示全部楼层
本帖最后由 hsrzq 于 2024-11-1 10:14 编辑

1. 理论上是data/idata所有空间,从00H开始都可以,不必非从30H开始。
  但实际上00H~1FH有特殊功能(四组通用寄存器),20H~2FH也有特殊功能(位寻址区),为了发挥最大作用才把这部分让开的。
  没有什么不符,RAM做出来就是让用的,栈只是使用RAM的其中一种方式,但绝不是唯一方式。访问中间的数据是很常见的操作,仅限制成栈的先进后出反而束手束脚,限制了程序开发的灵活性。
2. 没有特别的规定一定要从哪开始,都是根据实际情况灵活变化的。个人建议是把30H~7FH这段给临时变量,栈从80H开始。这样临时变量在直接寻址区的话汇编指令简单些且效率略高一点
业余撸代码,专业开飞机
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:164
  • 最近打卡:2025-05-01 11:07:38

8

主题

48

回帖

541

积分

高级会员

积分
541
发表于 2024-11-1 20:53:55 | 显示全部楼层
hsr*** 发表于 2024-11-1 10:07
1. 理论上是data/idata所有空间,从00H开始都可以,不必非从30H开始。
  但实际上00H~1FH有特殊功能(四组 ...

请问一下您对于2的回答:您把30H~7FH这段给临时变量,80H开始到FFH不是应该是特殊寄存器区域吗?如果让栈从80H开始会不会造成栈和特殊功能寄存器冲突?
截图202411012053258376.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:455
  • 最近打卡:2025-05-01 08:13:06
已绑定手机

27

主题

341

回帖

1687

积分

金牌会员

机长

积分
1687
发表于 2024-11-1 23:07:54 | 显示全部楼层
ZJM*** 发表于 2024-11-1 20:53
请问一下您对于2的回答:您把30H~7FH这段给临时变量,80H开始到FFH不是应该是特殊寄存器区域吗?如果让 ...

不会冲突。
80H到FFH这个段实际上有两块空间,直接寻址就是特殊寄存器,间接寻址就是普通RAM。
当作栈使用的话,实际访问的是普通RAM区,和特殊寄存器没有一丁点儿关系
业余撸代码,专业开飞机
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:164
  • 最近打卡:2025-05-01 11:07:38

8

主题

48

回帖

541

积分

高级会员

积分
541
发表于 2024-11-5 12:14:28 | 显示全部楼层
hsr*** 发表于 2024-11-1 23:07
不会冲突。
80H到FFH这个段实际上有两块空间,直接寻址就是特殊寄存器,间接寻址就是普通RAM。
当作栈使 ...

好的,非常谢谢你
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 02:18 , Processed in 0.142195 second(s), 84 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表