当前位置:编程学习 > 汇编语言 >>

可以显示C语言编译成汇编语言全过程的编译器

我在学习汇编和C语言,看了一本教材。它讲解汇编时用C语言的编译过程做例子,我的感触很大,有没有一款C语言编译软件,单步编译C语言,并将编译的汇编结果及汇编优化结果显示出来,我觉得这样可以帮助我更深刻的理解这两种语言。
答案:VC6.0下载地址
http://hi.zhaoxi.net/%D3%A5%DE%C4/blog/item/2a8d0df7180b9b4c342acc5e.html

C语言代码写完那之后,确定可以编译通过
C语言反汇编过程:按“F10”->找到“调式框”->点击“disassembly”
注意disassembly是由一个放大镜和一个文本复合构成的图标,按F10之后,这个图标可以看到


如C语言代码为:
#include  <stdio.h>

int main(void)
{
	printf("hello world!\n");

	return 0;
}


以下就是C语言反汇编结果
1:    #include  <stdio.h>
2:
3:    int main(void)
4:    {
00401010   push        ebp
00401011   mov         ebp,esp
00401013   sub         esp,40h
00401016   push        ebx
00401017   push        esi
00401018   push        edi
00401019   lea         edi,[ebp-40h]
0040101C   mov         ecx,10h
00401021   mov         eax,0CCCCCCCCh
00401026   rep stos    dword ptr [edi]
5:        printf("hello world!\n");
00401028   push        offset string "hello world!\n" (0042201c)
0040102D   call        printf (00401060)
00401032   add         esp,4
6:
7:        return 0;
00401035   xor         eax,eax
8:    }
其他:这个俺不知道,但是俺要推荐一款有相同功能的软件:VS2008,虽然它不会逐行编译(这不太现实),但你能通过调试看到当前运行代码附近的汇编语句。当你切换至Release版本是,你就发现微软编译器的神奇之处了! 这个要看你使用什么编译器了。查看编译器的帮助文档,它会告诉你它支持那些指令集,并且做哪些可能的优化。

不同的编译器,是不一样的。

补充:GCC 不太清楚,你连VC  的版本都不说。汗,VC6是不支持SSE的,需要安装VC6SP5。
VS2005 和 VS2008 都支持 SSE。对 SSE/MMX 指令集优化得最好的,还是 Intel 的 c   编译器。

对并行和高性能计算,Fortran 的优势比较大。特别是 Fortran2003 的新特征,为并行计算做了很多专门的设定。Intel 也有 Fortran 的编译器。荧_惑_星如果我回答的好请给我分谢谢DACB 如果你有用IDE的话,比如Visual Studio、Delphi等,应该都是可以设置C和汇编同时查看的。
一句C对应一句汇编,也相当于“单步编译”吧! 

上一个:如何利用汇编语言求取一个数被8整除后的商和余数的
下一个:命令提示符运行汇编的问题。

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,