标题: AT89S52单片机特殊功能寄存器中的堆栈指针SP的复位值为什么是07H? [打印本页]

作者: 也就那样    时间: 2023-10-6 18:56
标题: AT89S52单片机特殊功能寄存器中的堆栈指针SP的复位值为什么是07H?
本人是一名在校大学生,本学期开始了单片机原理及应用课程的学习,教学刚开始无多久,在课堂上对这个特殊寄存器SP的复位值为什么是07H有些疑惑。教材上说:“考虑到08H~1FH单元属于工作寄存器区,而在程序设计中有可能会用到这些工作寄存器区,所以在SP复位后将其修改为60H或者其他值,以避免堆栈区和工作寄存器区发生冲突。” 这样不是很麻烦么,为什么SP复位不直接到工作寄存器区以外呢?是和它的制造工艺有关系吗?希望各位能不吝赐教,小生初来乍到贵平台,如有唐突冒犯还望勿怪,先行谢过诸君。

作者: Hephaestus    时间: 2023-10-6 20:24
就算是高级语言来编程MCS-51也很难利用到除了Bank0以外的其他Register Bank,复位值是07是放开Bank0让你用,其他RAM区都默认是Stack,这是一种很朴素的想法,你觉得不合适就改SP的值,一条指令的事情用得着这么操心吗?
作者: powerdruy    时间: 2023-10-26 18:53
Hephaestus 发表于 2023-10-6 20:24
就算是高级语言来编程MCS-51也很难利用到除了Bank0以外的其他Register Bank,复位值是07是放开Bank0让你用 ...

这就是一些技术开发的教学课程脱离实际的地方,理解这些内容确实对提高有帮助,但不是意味着学好这门课就得掌握这些细枝末节的东西,但是教材和学校都只会照本宣科




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1