堆栈操作指令 PUSH和POP
格式: PUSH OPRD
POP OPRD
功能: 实现压入操作的指令是PUSH指令;实现弹出操作的指令是POP指令.
说明: 1. OPRD为16位(字)操作数,可以是寄存器或存储器操作数.
2. PUSH的操作过程是: (SP)<--(SP)-2,((sp))<--OPRD 即先修改堆栈指针SP(压入时为自动减2),然后,将指定 的操作数送入新的栈顶位置.
此处的((SP))<--OPRD,也可以理解为:
[(SS)*16+(SP)]<--OPRD 或 [SS:SP]<--OPRD
3. 示例: PUSH DX
PUSH BP
PUSH CS
PUSH DATA1
PUSH ALFA[BX][SI]
注意: 每进行一次压入操作,都压入一个字(16位).
4. PUSH和POP指令对状态标志位没有影响。
5. 什么是堆栈
堆栈被定义为一种先进后出的数据结构,即最后进栈的元素将被最先弹出来.这很像许多人进入一条窄得只能 容纳一个人通过的小道,如果要从这条道往回退出
堆栈操作指令 PUSH和POP
格式: PUSH OPRD
POP OPRD
功能: 实现压入操作的指令是PUSH指令;实现弹出操作的指令是POP指令.
说明: 1. OPRD为16位(字)操作数,可以是寄存器或存储器操作数.
2. PUSH的操作过程是: (SP)<--(SP)-2,((sp))<--OPRD 即先修改堆栈指针SP(压入时为自动减2),然后,将指定 的操作数送入新的栈顶位置.
此处的((SP))<--OPRD,也可以理解为:
[(SS)*16+(SP)]<--OPRD 或 [SS:SP]<--OPRD
3. 示例: PUSH DX
PUSH BP
PUSH CS
PUSH DATA1
PUSH ALFA[BX][SI]
注意: 每进行一次压入操作,都压入一个字(16位).
4. PUSH和POP指令对状态标志位没有影响。
5. 什么是堆栈
堆栈被定义为一种先进后出的数据结构,即最后进栈的元素将被最先弹出来.这很像许多人进入一条窄得只能 容纳一个人通过的小道,如果要从这条道往回退出
来的话,那么最先退出来的人是最后一个进入小道的人
PUSH 02H z指的是指向寄存器R2