能力值:
( LV11,RANK:190 )
|
-
-
2 楼
mov eax,0
ret
|
能力值:
( LV9,RANK:170 )
|
-
-
3 楼
xor eax, eax
retn <- 这个看什么调用方式吧...
|
能力值:
( LV4,RANK:50 )
|
-
-
4 楼
上面两人的回答不对,那只是简单C代码(包括只使用C语言特性的C++函数),最优化编译,不开启编译器附加特性时的情况。
C++
答案是:不确定,有诸多因素需要确定,至少有:
1、C++函数返回会局部对象触发析构,根据局部对象的使用/实现情况,可能引入附加的指令
2、return语句如果处于try/catch中,会引起C++异常的相关runtime代码的指令执行。
(编译器相关,vc的C++异常使用SEH实现,可以参考 _try/_except/_finally;也有用类似long jump/signal实现的异常处理)
3、受编译选项影响。
比如,VC中的栈溢出检查,会导致return时在pop ebp前多一个checksecuritycookie
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
不知道
mov al,0
retn
是不是
|
能力值:
( LV4,RANK:50 )
|
-
-
6 楼
周全的考虑
所以说具体情况要具体反汇编
|
能力值:
( LV15,RANK:670 )
|
-
-
7 楼
典型的情况是:
xor eax,eax ... retn
在最近的 retn 前会把 eax 清零。
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
自己写一下,然后运行在反汇中看就可以了!
|
能力值:
( LV3,RANK:20 )
|
-
-
9 楼
0代表faulse,非0就是true
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
找个编译器调试一下
|
|
|