汇编语言--栈

一,什么是栈?

  栈是一段连续的内存单元,也就是一段连续的内存地址

二,如何理解栈顶标记?

  栈顶标记是内存地址,通过段地址和偏移地址来表示

  在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的倍数)

碰到问题要想想自己是不是缺少解决问题想法的基础

原文地址:https://www.cnblogs.com/RosemaryJie/p/14035931.html