原创 堆栈:

2007-4-2 14:28 1851 9 10 分类: MCU/ 嵌入式
堆栈:

   堆栈是一个区域,是用来存放数据的,这个区域本身没有任何特殊之处,就是内部RAM的一部份,特殊的是它存放和取用数据的方式,即所谓的‘先进后出,后进先出’,并且堆栈有特殊的数据传输指令,即‘PUSH’和‘POP’,有一个特殊的专为其服务的单元,即堆栈指针SP,每当执一次PUSH指令时,SP就(在原来值的基础上)自动加1,每当执行一次POP指令,SP就(在原来值的基础上)自动减1。由于SP中的值可以用指令加以改变,所以只要在程序开始阶段更改了SP的值,就可以把堆栈设置在规定的内存单元中,如在程序开始时,用一条MOV SP,#5FH指令,就时把堆栈设置在从内存单元60H开始的单元中。一般程序的开头总有这么一条设置堆栈指针的指令,因为开机时,SP的初始值为07H,这样就使堆栈从08H单元开始往后,而08H到1FH这个区域正是8031的第二、三、四工作寄存器区,经常要被使用,这会造成数据的浑乱。不同作者编写程序时,初始化堆栈指令也不完全相同,这是作者的习惯问题。当设置好堆栈区后,并不意味着该区域成为一种专用内存,它还是可以象普通内存区域一样使用,只是一般情况下编程者不会把它当成普通内存用了。

文章评论1条评论)

登录后参与讨论

用户170169 2008-10-23 14:58

说的清楚,使自己更明白了,感谢!
相关推荐阅读
用户41648 2008-11-13 09:16
步进电机。。(转载)
虽然步进电机已被广泛地应用,但步进电机并不能象普通的直流电机,交流电机在常规下使用。它必须由双环形脉冲信号、功率驱动电路等组成控制系统方可使用。因此用好步进电机却非易事,它涉及到机械、电机、电子及计算...
用户41648 2008-07-22 14:17
转载 3V与5V混合系统中逻辑器接口问题
3V与5V混合系统中逻辑器接口问题  3V与5V混合系统中逻辑器接口问题1 引言近年来,随着便携式数字电子产品棗笔记本计算机、数字式移动电话、寻呼机、手持式测试仪表等的迅速发展,要求使用体积小、功耗低...
用户41648 2008-07-03 15:16
GB ma
GB码 GB 即"国标"的汉语拼音缩写,为中华人民共和国国家标准的意思. 国标编码就是中华人民共和国信息交换汉字编码标准(GB2312-80), 在此标准中制定了每一个汉字及非汉字符号的编码。规定将汉...
用户41648 2008-06-30 14:21
俄文866编码及其与ANSI编码的转换
АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщыьэюяёъ(俄文866编码,用一个字节表示,在WORD中用西里尔文(DOS))80...
用户41648 2008-05-07 16:15
液晶扫描一帧的行数N的倒数叫占空比,半选择点和选择点的电压比叫偏压。
液晶扫描一帧的行数N的倒数叫占空比,半选择点和选择点的电压比叫偏压。很抽象?具体的说液晶是n行的(com端的数目),占空比就是1/n,在电压一定的情况下,行数的增加意味着占空比下降,使液晶的显示质量下...
用户41648 2008-03-21 09:30
区位码和国标码转换
国标与机内码的转换   国标码并不等于区位码,它是由区位码稍作转换得到,其转换方法为:先将十进制区码和位码转换为十六进制的区码和位码,;这样就得了一个与国标码有一个相对位置差的代码,;再将这个代码的第...
我要评论
1
9
关闭 站长推荐上一条 /2 下一条