微机原理里面的$,单片机里面的sp和pc 有什么区别吗,它们指向的到底是地址最大的那条指令还是最大地址加1
1个回答
展开全部
追问
请问sp指向的所谓栈顶 里面有没有数据或者程序 我想弄明白的是它指的到底是哪 假设存31H的单元是地址最大的了 那指针指的是31H这个单元 还是存31H这个单元的再上个单元 还有$不是计数器吗?怎么表示地址了
追答
栈顶里面有数据啊,堆栈指针不会指向程序区的。
sp实际上也就是一个指针而已,它始终是指向栈顶。如果是8088/8086系列,压栈操作sp就减2,同时把要压栈的数据复制到sp所指的两个单元里。这个时候的栈顶因为sp减了2,因此上移了两个单元,sp还是指向新的栈顶。
不太清楚你说的31H单元是地址最大了这句话。8088系列压栈操作是sp向地址小的方向移动。
如果你说31H单元是堆栈段内地址最小的单元(图上看是有效地址EA=0),确实sp从0再减2就会变成0FFFEH了,这样的话就可能会出错了。所以初始化时,sp要给一个合适的值。
$确实是计数器,是汇编程序在汇编源程序时扫描原程序用的计数器,但它实际也就是表示地址。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询