PUSH、POP和XCHG指令
2007-12-20 12:14
423 查看
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中不能有段寄存器。
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中不能有段寄存器。
相关文章推荐
- push、pop指令
- [置顶] 4000 2017-11-15 深刻理解堆栈及PUSH POP指令
- Push, Pop, call, leave 和 Ret 指令图解
- push、pop指令
- PUSHA/PUSHAD POPA/POPAD 指令详解
- Push, Pop, call, leave 和 Ret 指令图解
- 数据传输指令--push、pop
- 8086汇编语言自学经验分享 push,pop指令执行时,sp怎么变
- push、pop指令
- push、pop指令
- push、pop指令
- push、pop指令
- STL make_heap push_heap pop_heap sort_heap
- pushViewController, popViewController, presentViewController, dismissViewController---关于视图跳转的总结
- 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
- 查找pop pop ret call dword ptr [esp+nn]指令的方法
- 练习系列 - 3、设计包含min函数的栈,push、pop、min的时间复杂度都为O(1),仿照APR_RING采用宏实现
- 自己用Java实现一个“栈”类,包括push和pop基本操作
- js push ,pop ,concat ,join方法
- js 数组 pop,push,unshift,splice,shift