一,什么是栈?
栈是一段连续的内存单元,也就是一段连续的内存地址
二,如何理解栈顶标记?
栈顶标记是内存地址,通过段地址和偏移地址来表示
在8086cpu中,在任意时刻将段地址寄存器ss和偏移地址寄存器sp(ss:sp)所组合出来的内存地址当作栈顶标记(注意地址加法器)
三,push和pop
push ax 修改sp寄存器中的数值 sp = sp - 2
将ax中 字型数据 放入 ss:sp所组合出来的内存地址
pop ax 将ss:sp所组合出来的内存地址中的字型数据放入bx中
修改栈顶标记sp = sp + 2
四,通过指定ss:sp中的值可以就可以指定栈顶标记的地址和栈的大小
注意:汇编中没有寄存器来记录栈的上下限,所以指定栈的大小的时候要按照最大的可能来设计(一般按照16的倍数)
碰到问题要想想自己是不是缺少解决问题想法的基础