PUSH 入栈
PUSH OP;把操作数OP压入堆栈。
操作:
SP=SP-2
WORD PTR SS:[SP]=OP
补充说明:WORD PTR SS:[SP]表示SS:SP所指向的字。即堆栈段的当前堆栈指针所指向的2字节的内存单元
格式:
PUSH REG
PUSH MEM
其中PUSH的操作数(REG或MEM)必须是16位,即2个字节。
——————————————————————————
POP出栈
POP OP;从堆栈读取2字节的数据到OP。出栈是入栈的反过程。
操作:
OP=WORD PTR SS:[SP]
SP=SP+2
补充说明:OP也必须是2字节的
格式:
POP REG
POP MEM
——————————————————————————
PUSH和POP的操作数OP都必须是16位的,并且不可以是立即数。只能是寄存器或内存单元。
并且,POP的操作数不可以是CS,CS是只读的。可以PUSH CS,却不可以POP CS。
PUSH和POP都不影响标志位。
——————————————————————————
XCHG 交换(Exchange)
XCHG OP1,OP2;将OP1和OP2的数据对换
操作:
X=OP1
OP1=OP2
OP2=X
补充说明:XCHG不影响标志位,OP中不能有段寄存器。