小编Alo*_*lok的帖子

gcc、g++中生成ASM代码需要什么

为了缩小我的问题范围,让我描述一下我的假设和我所做的实验......

我的假设:用汇编语言编写的代码将比 C/C++ 对应的代码运行得快得多,并且可执行文件的大小也比 C/C++ 代码生成的代码小得多。

实验:我将以下程序写入bin2dec.c

#include <stdio.h>

int main()
{
    long int binary, decimal, reminder, exp;
    int i, j;

    for(i=0; i<10000; i++)
    {
        for(j=0; j<1000; j++)
        {
            binary = 11000101;

            exp = 1;
            decimal = 0;

            while(binary != 0)
            {
                reminder = binary % 10;
                binary = binary / 10;
                decimal = decimal + reminder * exp;
                exp *= 2;
            }   
        }
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

然后为其生成ASM代码gcc -S bin2dec.c -o bin2dec.s

之后我编译了两个文件,如下所示

gcc bin2dec.c -o bin2dec_c …
Run Code Online (Sandbox Code Playgroud)

c++ assembly gcc g++

1
推荐指数
1
解决办法
1881
查看次数

标签 统计

assembly ×1

c++ ×1

g++ ×1

gcc ×1