首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

如何快速查看将C反汇编的代码

如何快速查看将C反汇编的代码

查看反汇编主要的思路在于将 流程,处理,算法 区分开来。
1 函数调用
原C代码:

int sum(int, int);
int main(){
    int c = sum(1, 2);
    printf("c=%d", c);
    return 0;
}

int sum(int a, int b){
    int c = a + b;
    return c;
}

反汇编的函数调用主要使用bp-frame式(不懂自己去查去)的调用方式:
mmm
然后是被调用的sum:
ss

2  for循环
基本的for循环是这样的:

int sum(int b){
    int c, i=0;
    c = 0;
    for(i=0; i<4; i++){
        c += b;
    }
    return c;
}

然后反汇编后,for循环一般是以下的形式的:

下面看看上面的c代码反汇编后变成了什么:

3 do-while循环
例子代码为:

int sum(int b){
    int c, i=0;
    c = 0;
    do{
        c += b;
        i++;
    }while(i < 4);
    return c;
}

do-while循环的基本结构:

然后我例子代码的反汇编为:


4 while循环|
例子代码为:

int sum(int b){
    int c, i=0;
    c = 0;
    while(i < 4){
        c += b;
    }
    return c;
}

while反汇编的基本结构为:

上述代码反汇编的结果为:
继承事业,薪火相传
返回列表