栈(8086机制)
8086中栈的操作的基本单位为字(2个byte,16位二进制)
对应栈的指针地址分别存储在段地址寄存器SS和偏移地址寄存器SP中,即SS:SP指向栈顶元素
地址对应顺序:8086中,入栈时,栈顶从高地址向低地址方向增长。所以其设置SP偏移寄存器时应该设置为栈的最高位地址。
push和pop
在8086中没有专门设定栈顶栈底的寄存器,所以相关操作的时候要注意溢出问题。
栈段
由于8086偏移地址寄存器位数的限制,其偏移地址最大的数值只能是FFFF,即可寻2^(4*2*4)个存储单位的地址(BYTE)。除以1024,可知最大栈段为64KB.
DEBUG现象
在-T命令下:
在执行修改SS段寄存器的指令时,下一条指令也紧接着被执行。
reference:《汇编语言》王爽