单片机中堆栈指针的作用?A指明栈底的位置; B.指明栈顶的位置 C.操作数地址; D.指令的地址

如题所述

答案B 堆栈指针SP存放的是堆栈区的地址。假设SP刚开始存放的是30H,那么执行PUSH direct 的时候,把direct地址所指示的存储器单元的数据压入(SP)←(SP)+1(此时sp先进行加一)也就是31H(存储器单元地址),这时如果还有数据要压入堆栈区,就依次执行,即放入32H,33H中,当放到33H的时候,此时SP中的值就是33H,就是SP指向33H存储器单元。此时如果有指令POP direct ,则从33H开始取出数据,然后SP自减一,再取出下一条。因此,此时所说的栈顶就是堆栈区地址中最大的数,指到33H的时候,就是33H,取出33H中的数据后,栈顶就是32H。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-04-28
选择B。堆栈指针主要用来保存临时数据、局部变量和中断/ 子程序的返回地址。栈顶的位置由栈指针SP指出。
相似回答