首页
社区
课程
招聘
[讨论]关于push指令
发表于: 2016-4-17 18:19 3105

[讨论]关于push指令

bxc 活跃值
6
2016-4-17 18:19
3105
一直以来在分析代码时都有个问题:为何软件汇编代码中,需要把一个内存地址中的数据压栈,
不是直接push dword ptr [xx],而是:
mov r32, dword ptr [xx]
push r32


虽然push dword ptr [xx]的情况也有,但是感觉很少的样子。
直接push dword ptr [xx]对性能的影响很大吗?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费
支持
分享
最新回复 (5)
雪    币: 303
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
这个应该或许是编写代码的问提了。
使用了变量 传递 应该就会mov一下。
直接使用立即数 一类就会直接push 。
2016-4-17 18:49
0
雪    币: 7068
活跃值: (3552)
能力值: ( LV12,RANK:340 )
在线值:
发帖
回帖
粉丝
3
立即数肯定是push,我主要是说的内存数据。即dword ptr [xx]。
2016-4-17 22:17
0
雪    币: 8494
活跃值: (2990)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
原因很简单,就是Intel没有设计这个指令
2016-4-18 12:18
0
雪    币: 7068
活跃值: (3552)
能力值: ( LV12,RANK:340 )
在线值:
发帖
回帖
粉丝
5
有的。OD可以汇编出来。
2016-4-18 21:25
0
雪    币: 1844
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
6
编译器没有这个方案,一般能见到的  push dword ptr[xxxx]  基本都是在壳里出现的
2016-4-18 21:34
0
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册