51单片机汇编语言:为什么要在堆栈里装入40H啊?

2025-03-26 22:09:42
推荐回答(3个)
回答1:

因为03H、0BH、13H、1BH和23h还有2BH(c52单片机还多了定时器2),这些作为这几个中断的入口地址,为了堆栈地址不和这些冲突,所以给它延后,至于多少不一定固定40H,只要这地址不冲突就好

谢谢hao2senlin朋友,我上面的回答确实是错的,差点误导了朋友。
单片机复位时,SP初始化为07H,使得堆栈由08H开始,考虑到08H~1FH单元为工作寄存器区1~3(00H~07H为0 区),若在程序中要用到这些区,则最好把SP值改置到1FH或更大的值 。

回答2:

设置堆栈的起始地址.写程序的时候一定要注意,既要为堆栈分配足够的空间,又不能与要使用的寄存器冲突.当然用C就不必担心这些了
47okey 的回答是错误的,堆栈占用的是数据空间,与程序空间没关系的

回答3:

初始化堆栈指针