mov ecx,[ebp
-
2ch]
mov edx,[ecx]
and edx,80000000h
neg edx
sbb edx,edx
neg edx
mov edx,[ecx]
and edx,80000000h
neg edx
sbb edx,edx
neg edx
mov [ebp-38h],edx
其对应的C代码为:
var_38=(*var_2c)&0x80000000?1:0
switch...case语句,在VC6编译器下,比较语句将按照case值由小到大排列,而代码则按照程序员书写的从后到前的顺序汇编:如下面的语句:
switch
(var_d8)
{
case 0xff :
{
var_cc = 0 ;
for (;var_cc < 4 ;var_cc ++ )
{
var_28[var_cc] = arg_1[var_cc];
( & var_28[ 4 ])[var_cc] = arg_1[var_cc] ^ ( & arg_1[ 4 ])[var_cc];
}
p9(var_c8,var_28,arg_2);
break ;
}
case
{
case 0xff :
{
var_cc = 0 ;
for (;var_cc < 4 ;var_cc ++ )
{
var_28[var_cc] = arg_1[var_cc];
( & var_28[ 4 ])[var_cc] = arg_1[var_cc] ^ ( & arg_1[ 4 ])[var_cc];
}
p9(var_c8,var_28,arg_2);
break ;
}
case