如何将c语言程序转成汇编语言程序。

来源:百度知道 编辑:UC知道 时间:2024/06/30 08:22:51
如题,高手赐教,感激不尽。

先把C语言编译,生成.exe文件,然后反汇编,具体怎么反汇编,不是很清楚,查下资料吧。

问题分两个部分答:
..................................................
第一:仅仅是需要看C语言的每一句执行与汇编语言的对照,可如下来做:
举例:最简单的C程序:
void main()
{
int a = 1,b = 2,c;
c = a+b;
}
在VC中输入程序:
点击菜单[编译]->[开始调试]->[Step Into] 或直接按[F11]进入单步调试,
然后再点击[调试工具栏上的 Disassembly]即显示汇编语言对照.就可以
看到以上最简单的C程序的对应的汇编语言.看到的情况如下:
3: int a = 1,b = 2,c;
00401028 C7 45 FC 01 00 00 00 mov dword ptr [ebp-4],1
0040102F C7 45 F8 02 00 00 00 mov dword ptr [ebp-8],2
4: c = a+b;
00401036 8B 45 FC mov eax,dword ptr [ebp-4]
00401039 03 45 F8 add eax,dword ptr [ebp-8]
0040103C 89 45 F4 mov dword ptr [ebp-0Ch],eax
...................................................
第二:
用IDA 3.74反汇编DOS下的可执行文件和WIN32的NE,PE格式的文件。
在反汇编C语言变的文件时,可以自动辨认出 C语言的库文件。
可找到_main()函数一下子就找到了,能识别VC5.0编写的程序,
识别MMX指令。