如何将.c 转换成.asm

如何将.c 转换成.asm,第1张

问题分两个部分答:

..................................................

第一:仅仅是需要看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指令。

下载具体地址为:202.115.9.33\incoming\program\ida

大约为10兆,安装完后,将patch.exe拷到安装目录下,执行一遍

即可去掉64k内存的限制

在 options for target 里打开 listing选项卡,勾选下边第一行最后一个Assembly code选项,

编译之后生袭岩谈成的.LST文件里就有对应的汇编代码,直接复制出来。

或者你在debug时的汇编拍碰窗口直接复制枣猛


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8149156.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存