关于重定位的一段汇编代码,没看懂!
这段代码的功能是执行之后eax存放dwVar运行时刻的地址
dwVar dd ?
call @F
@@:
pop ebx;
sub ebx,offset @B
move eax,[ebx+offset dwVar]
上面的代码我理解的不是很好
call 指令之后的@F存在啊 还有@@:啥用啊?谁帮我注释下,谢了!
[解决办法]
@@是一个特殊的标号,@F指的是本条指令后的第一个@@,同理@B指的是本条指令以前的第一条@@。
那么你的这段指令翻译后就是:
dwVar dd ?
call L1
L1:
pop ebx;
sub ebx,offset L1
move eax,[ebx+offset dwVar]