1.8086CPU提供入栈和出栈指令,最基本的两个是PUSH(入栈)和POP(出栈)。好比,push ax表示将寄存器ax中的数据送入栈中,pop ax表示从栈顶取出数据送入ax。8086CPU的入栈和出栈操做都是以字为单位进行的。spa
2.CPU如何知道这段空间被看成栈来使用?如何知道那个单元是栈顶单元?cpu
8086CPU中,有两个寄存器,段寄存器SS和寄存器SP,栈顶的段地址存放在SS中,偏移地址存放在SP中。任意时刻,SS:SP指向栈顶元素。push指令和pop指令执行时,CPU从SS和SP中获得栈顶的地址。数据
在执行push、pop指令须要两步操做:执行push时,CPU的两步操做是:先改变SP,后向SS:SP处传送;执行pop时,CPU的两步操做是:先读取SS:SP处的数据,后改变SP。co
3.要当心栈顶超界的问题push