首页
社区
课程
招聘
[旧帖] 请教个Delphi汇编的问题 0.00雪花
2011-8-1 17:25 4959

[旧帖] 请教个Delphi汇编的问题 0.00雪花

2011-8-1 17:25
4959
CODE:00A0FAC2                 mov     esi, edx
CODE:00A0FAC4                 mov     ebx, eax
CODE:00A0FAC6                 mov     edx, esi
CODE:00A0FAC8                 mov     eax, ebx
这种寄存器(有时是与内存)之间的重复mov有什么意义吗?

还有个问题,哪里可以找到Delphi的帮助文档,带是函数参数说明的那种

阿里云助力开发者!开发者可享99元/年,续费同价!企业可享99元/199元双重权益

收藏
点赞0
打赏
分享
最新回复 (11)
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
djog 2011-8-1 18:19
2
0
要看下文有什么操作才能看出这几句啥意思.
雪    币: 215
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
cszdhhz 2011-8-1 20:30
3
0
push    ebx
push    esi
mov     esi, edx
mov     ebx, eax
mov     edx, esi
mov     eax, ebx
call      Sysutils::AnsiCompareText(System::AnsiString,System::AnsiString)
test    eax, eax
setz    al
pop     esi
pop     ebx
retn
----------------------------------------------
eax和edx是传进来的参数,这样倒来倒去不浪费吗?
雪    币: 27
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
孤单的狼 2011-8-1 20:33
4
0
有的寄存器不能直接赋值,要通过通用寄存器eax,ebx,ecx,edx来给它们赋值
雪    币: 215
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
cszdhhz 2011-8-1 20:57
5
0
还是不太明白,mov  esi, edx和mov  ebx, eax之后,edx和eax的值并没有变化,可以直接拿来用,再mov一次不是多此一举吗?
雪    币: 43
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
cnleo 2011-8-3 15:12
6
0
多余不要就行
雪    币: 193
活跃值: (64)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
无泪城 2011-8-3 15:32
7
0
采用的是寄存器传参!
雪    币: 60
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
leew 2011-8-3 15:40
8
0
貌似是 确保了 edx 和eax的值不发生变化,取值后,原始值可能为空
那个帮助文档,我没有
只有这个你看看吧 Delphi API,Delphi参考手册
[EMAIL="http://download.csdn.net/source/1567769"]http://download.csdn.net/source/1567769[/EMAIL]
雪    币: 9
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
resetinglm 2011-8-3 16:18
9
0
得好好努力
雪    币: 73
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
私仇之路 2011-8-3 17:07
10
0
不知道后面两行要来什么用?
雪    币: 47
活跃值: (36)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
rufeifei 2011-8-14 21:27
11
0
我也看不懂  帮助你顶起来   这个跟符号标志什么的没有关系吧,这样就是倒腾来倒腾去   
坐等高人解释
雪    币: 41
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
爱卿请起 2011-8-24 13:10
12
0
你试下取消 传来过传去 是否执行过程结果没变化,如果是我,这样就为了华丽的代码更加华丽,即是你知道dota 魔兽 星际的职业玩家为什么要执行很多废操作吗,如果你在编程的时候可以一段很简洁的代码,在相同时间用更加复杂的过程编出,你将会很快成为超级大师,我不支持简洁,除非你在做实际工作 ,否则这样你可以保持大脑高度的灵活性,然后不停编程。像一个钢琴小王子,一样的操作!
   个人观点
游客
登录 | 注册 方可回帖
返回