首页
社区
课程
招聘
这几句代码怎么理解呀?
发表于: 2005-11-7 18:32 3316

这几句代码怎么理解呀?

2005-11-7 18:32
3316
call   @f
   db        'ADVAPI32.DLL',0

在CAll后面定义的字符串怎么理解?有什么作用?

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

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 233
活跃值: (130)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
2
压栈
2005-11-8 09:13
0
雪    币: 161
活跃值: (231)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
====================================================================
The "@@" name means anonymous label, you can have defined many of them in the source. Symbol "@b" (or equivalent "@r") references the nearest preceding anonymous label, symbol "@f" references the nearest following anonymous label.These special symbol are case-insensitive.
====================================================================
call  后跟 @f ,表示 call 下一个@@符号处,@b表示call上一个@@符号处
例如:
call @f
db "advapi.dll", 0
//call 到这里
@@:
    mov ebx,ebx

CALL指令将会把下一条指令地址入栈,也就是push 下一条指令地址,所以上面的代码其实就等于:
push dllname
mov ebx,ebx
...

dllname db "advapi.dll", 0
2005-11-8 09:57
0
游客
登录 | 注册 方可回帖
返回
//