[C51]RAM开销及堆栈大小,keil工具

本文详细介绍了MCS51单片机内部RAM的结构,特别是标准51的256字节RAM的使用,包括堆栈的初始化位置、工作寄存器组的配置以及如何在Keil环境下查看堆栈指针。同时讨论了C51与标准C在变量存储上的差异和如何通过外部RAM扩展堆栈空间以优化内存使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为方便介绍下面图片节选自文章: 

MCS51 数据存储器(RAM)_片内基本ram的地址范围-CSDN博客  

 

对于标准51的RAM是256字节,只有0x00-0x7F是数据存储器,因此用户数据和堆栈都在此区域

上电默认使用第0组工作寄存器组,其他组除非自己配置使用,否则不使用,其所在内存空间也可以任意使用。

在没有任何程序的情况下,51初始化后启用第0组工作寄存器,用户可用RAM从0x08开始,并且此时用户没有设置变量,故C51编译器自动设置堆栈指针SP=0x07(堆栈指针指向堆栈顶部,压栈时先自增再压栈,故要存放数据在0x08,则需SP=0x07)

下面给出在keil上如何查看

新建空白51工程

main文件只有空白的main函数</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@枭白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值