能力值:
( LV8,RANK:120 )
|
-
-
2 楼
总结得不错啊, 支持下
|
能力值:
( LV10,RANK:170 )
|
-
-
3 楼
支持下,精神可嘉
|
能力值:
( LV5,RANK:60 )
|
-
-
4 楼
过来支持一下!!!!!!!!!!!!
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
比有些反汇编的书籍讲得更容易让人理解接受。支持继续下去。
|
能力值:
( LV15,RANK:670 )
|
-
-
6 楼
/O2 编译出来的很让人蛋疼。
|
能力值:
(RANK:350 )
|
-
-
7 楼
这篇文章适合初学者,鼓励一下!
|
能力值:
( LV5,RANK:60 )
|
-
-
8 楼
一直在自己探索,看到这篇文件头脑清醒多了。
|
能力值:
( LV4,RANK:50 )
|
-
-
9 楼
恩,实际情况是类似这样的分支代码:
if(i<x1)
{…
if(i<x2)
{…
if(i<x3)
…..
else
…..
}
else
……
}
比如其中的else部份,及可能编译后else部份的代码已经不在整个分支代码的地址范围内,编译器采用至少两个跳转来调用else部份的代码,也就是这样
if(i<x1)
{…
if(i<x2)
{…
if(i<x3)
…..
else ; jxx aaaaaaaa 编译后的代码并未顺序排列,而是跳转到别处运行,但是总会jmp回来
…..
}
else
……
; 地址 bbbbbbbb
}
第一个else部份的代码:
地址 aaaaaaaa
…
jmp bbbbbbbb ;此处再跳回分支代码的最后
当然,实际情况中还会有更多的jmp,不过总会jmp回程序正常的逻辑范围内
|
能力值:
( LV15,RANK:670 )
|
-
-
10 楼
MS 自身的程序编译后基本是这种情况。
|
|
|