存储空间:
堆栈操作:从低地址端 压入或弹出数据
PUSH:先SP-2,再压入数据
POP:先弹出数据,再SP+2
例: PUSH BX
执行过程为:SP=SP-1,[SP]= BH;SP=SP-1,[SP]=BL,如图2-7 所示
若初始 SP=1000H,则执行后 SP=OFFEH
注意:
① 堆栈以字为单位操作
PUSH BL 错
PUSH [DI] 对
② CS不能跟POP
PUSH CS 对
POP CS 错
在汇编程序中,通常可以通过PUSH 指令将指定寄存器内容放入堆栈中保护,也可以通过POP指令将堆栈中的内容装入寄存器,而对于代码段寄存器CS,用户程序只有PUSH CS操作,如写出POP CS,编译程序会报错。这是因为随意变更CS寄存器内容,会造成程序跑乱,很可能造成系统瘫痪。
③ 没有立即寻址
PUSH 1234H 错
④ 存放数据的原则:先进后出,后进先出