可以显示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整除后的商和余数的
下一个:命令提示符运行汇编的问题。