举个例子:SP的初始化值是07H,SP从08H开始增加.当程序需要压栈操作时,就将程序的PC值压入堆栈,注意PC是两个字节的指令.先压入低字节,在压入高字节;弹出则相反.当此时PC=0102H.又由于,初始化之后SP的值是07H,因此先加1,再压入堆栈.可得到(08h)=02,(09h)=01;同样的弹出则是相反 .
因此我像你说的“sp的范围是不是应该在数据存储器ram的20h---7fh的地址空间范围之呢?
”;应该是完全错误的,SP的范围指的是程序计数器的表示范围,而不是数据存储器的.所以应该为片内000H~FFFH,范围内.如果外接程序存储器的范围话,可以更大.