首页
社区
课程
招聘
[旧帖] [求助]汇编中关于PUSH和POP的问题! 0.00雪花
发表于: 2009-2-26 21:29 6561

[旧帖] [求助]汇编中关于PUSH和POP的问题! 0.00雪花

2009-2-26 21:29
6561
汇编中关于PUSH和POP的问题!

PUSH进栈指令(只以PUSH为例来询问)

在有些书籍上被解释为(以16位为例):
格式:PUSH SRC;
执行操作:(SP-1),(SP-2)《— (SRC)
          SP〈- SP-2

在另一些书上解释为:
格式:PUSH SRC;
执行操作:SP〈- SP-2
          ((SP+1),SP)《— (SRC)

也就是说:一种解释为数据先进栈后,指针再减2。一种解释为指针减2后,数据才进栈。
请问:这两种解释哪种更确切(正确点),或者说这两种都能说是正确(自己估计这两种说法都不影响操作,)
请教大侠们指点,最好详细确切地说明一下,先谢过!

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 293
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
难道lz是学芯片设计的?
从汇编角度来说,我觉得以上2种说法都对,因为看似2部分,其实push已经不能再细分了,这里是一次完成这个动作,不可能让CPU停在2步中间。
2009-2-26 22:12
0
雪    币: 462
活跃值: (53)
能力值: ( LV9,RANK:460 )
在线值:
发帖
回帖
粉丝
3
当你仔细查看Intel指令手册时,你会看到Intel对PUSH指令的解释第一话就是:“Decrements the stack pointer and then stores the source operand on the top of the stack.”
我想你肯定知道“then”这个词的意思吧?

POP同理:
“Loads the value from the top of the stack to the location specified with the destination
operand (or explicit opcode) and then increments the stack pointer.”
2009-2-26 22:52
0
雪    币: 132
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
好象是80286/8086属于其中一种情况,而386开始属于另外一种情况。
2009-2-27 15:19
0
游客
登录 | 注册 方可回帖
返回
//