current location: up9rade >
groups >
my career
一个并不照本宣科的编译器 :)
|
20080201 16:55:44 from: Lorry Astra
C++源码:
int main()
{
int al,bl,cl;
bool X;
al=1;bl=2;cl=3;
if((al>bl) && (bl>cl))
{
X=1;
}
}
判断部分对应的assembly language:
if((al>bl) && (bl>cl))
00411393 mov eax,dword ptr [al]
00411396 cmp eax,dword ptr [bl]
00411399 jle main+47h (4113A7h)
0041139B mov eax,dword ptr [bl]
0041139E cmp eax,dword ptr [cl]
004113A1 jle main+47h (4113A7h)
{
X=1;
004113A3 mov byte ptr [X],1
}
}
在00411399地址段,其实可以简单编译成jg的,但是编译器编译成jle的话显然节省了至少两行代码,呵呵.
------------------------------------------------------------------------------------------------------------
|
|