51单片机的堆栈区在那里?低128还是高128字节单元?
6个回答
展开全部
寻址区
30H~7FH:一般数据区,堆栈区
寄存器组就是R0-R7,一共是8*4是32字节
位寻址就是对每一位寻址,一个字节可以有8位,位地址可以从0-7F,一共是16个字节
30-7FH有80个字节单元,可以采用字节字节寻址的方法访问
堆栈区及堆栈指示区 堆栈是在片内RAM中数据先进后出的一个存储区域。堆栈指针SP是存放当前堆栈栈顶所对应的存储单元地址的一个8位寄存器。系统复位后SP为07H,而07H一般是寄存器区,所以,一般可以通过对SP赋值,可以使堆栈区设定在RAM中的某一区域,但堆栈的深度以不超过片内RAM区空间为限
30H~7FH:一般数据区,堆栈区
寄存器组就是R0-R7,一共是8*4是32字节
位寻址就是对每一位寻址,一个字节可以有8位,位地址可以从0-7F,一共是16个字节
30-7FH有80个字节单元,可以采用字节字节寻址的方法访问
堆栈区及堆栈指示区 堆栈是在片内RAM中数据先进后出的一个存储区域。堆栈指针SP是存放当前堆栈栈顶所对应的存储单元地址的一个8位寄存器。系统复位后SP为07H,而07H一般是寄存器区,所以,一般可以通过对SP赋值,可以使堆栈区设定在RAM中的某一区域,但堆栈的深度以不超过片内RAM区空间为限
展开全部
1. 51单片机的栈可以是内部间接寻址区的任意位置,因此理论上是从I:00H~FFH的任意位置。
2. 因SP指针的特殊性,栈自动向上生长且必须连续。因此一般在分配完内部RAM后将SP指向未分配的首个单元。
3. 堆是堆,栈是栈,不要混为一谈。
2. 因SP指针的特殊性,栈自动向上生长且必须连续。因此一般在分配完内部RAM后将SP指向未分配的首个单元。
3. 堆是堆,栈是栈,不要混为一谈。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一般堆栈区由你设置SP的值来定的,所以理论上你的整个51内存区域里面的任何地方都可以作为堆栈区使用,一般是低128字节!我问过我的老师...
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一般是低128位 高128位被很多特殊功能寄存器区占用了
低128位也不是随便用的 00H-1FH被通用寄存器占用了
20H-2FH是可以位寻址的区域 也不好用
51可以用在30H-7FH的一般RAM区 这段连续 适合堆栈生长
52可以用在30H-FFH
低128位也不是随便用的 00H-1FH被通用寄存器占用了
20H-2FH是可以位寻址的区域 也不好用
51可以用在30H-7FH的一般RAM区 这段连续 适合堆栈生长
52可以用在30H-FFH
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
允许的最大范围是08H~7FH,是在低128字节,高的一般不能用。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询