80C51单片机堆栈中储存的是什么?

80C51单片机堆栈中储存的是地址吗?如果是地址,是什么的地址?还有除了地址外还能存储其他类的数据吗?

题目很有难度。

调用子程序时,堆栈中储存的是“调用指令下一条指令”的地址。
发生中断时,堆栈中储存的是“断点”地址。

利用PUSH指令,堆栈还能储存片内RAM、SFR等,各直接寻址单元中的数据。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-21
8051单片机的堆栈主要存储程序运行中的一些中间变量或数据。
1、用户为编程方便临时保存的数据,比如:
MOV A,30H
PUSH ACC
ANL A,#0FH
MOV B,A
POP ACC
ANL A,#0F0H
ORL A,B
MOV 30H,A
2、子程序调用时,系统保护现场地址
3、中断服务是,系统保护现场地址
4、中断服务程序中,用户保护服务程序中需要改变的一些工作寄存器或其他寄存器、累加器等本回答被网友采纳
第2个回答  2010-08-06
一般是存放地址的.是程序执行到那一步的地址,用堆栈主要是为中断服务的.当有中断发生时,程序得去响应中断.中断完成后,程序得接着执行.所在在响应中断前,把程序执行到的地方(断点)记住.也就是保护现场.当中断完了.再取出断点的地址接着执行.
第3个回答  2010-08-06
8051堆栈中存储的是什么要根据你的程序区判断,泛泛的说什么东西都可以存储到堆栈中,包括地址,程序的中间状态,数据的中间状态,就像pc的堆栈一样。而且堆栈是可以自己去扩充的,在内存中开辟区域当做堆栈使用!绝大数堆栈中存储的是中间结果,特别是对可以重入的函数,就非得用堆栈不可了
第4个回答  2010-08-06
堆栈中什么都可以储存的。不过一般都用于程序断点保护,保存当前工作状态
相似回答