如何查看VC++6.0下C++编译形成的汇编代码?

hyb8181 2006-11-08 11:07:04
如何查看VC++6.0下C++编译形成的汇编代码?
我这样的说法对不对?是不是C++代码经过make,也就是通过make命令调用makefile里的gcc命令,然后转换成目标文件(.o)?但这个目标文件里面是啥玩意?我一直没想明白.和汇编代码有联系吗?

有高手能说明下这个编译,连接的过程吗?多谢多谢:)
...全文
1099 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
hyb8181 2006-11-09
  • 打赏
  • 举报
回复
多谢,已经被发现,呵呵..
Bennyatt 2006-11-09
  • 打赏
  • 举报
回复
view->debug windows->disassembly
就是这里!!
很容易就找到的。
wonxlei 2006-11-09
  • 打赏
  • 举报
回复
路过看看,有点兴趣````
qtext 2006-11-09
  • 打赏
  • 举报
回复
要查看vc生成的汇编代码可用两种方法
1) debug版本,在vc中设断点,中断后,点菜单view->debug windows->disassembly就可看见汇编代码了。
2) 在命令行运行 cl /c /FAs your.cpp 可生成 your.asm ,用编辑器打开它察看即可。
qtext 2006-11-09
  • 打赏
  • 举报
回复
以visual c++ 为例,vc在后台调用编译器将所有cpp c 代码编译成obj文件(coff 格式),这个obj文件含有编译后的二进制代码,另外还含有供连接程序(link.exe)使用的符号信息,缺省库信息,重定位记录,外部符号记录,编译后调用link.exe将所有obj文件连接成一个pe 格式的exe文件,
exe文件中的代码是机器码,不是汇编代码,但可以用反汇编工具(如vc自带的调试器,ollydbg,windgb,softice等反汇编成汇编代码。

 目标文件(obj)的内容虽主要是机器码,但还不能执行的,它所调用的函数其地址还没定下来(全是0),这是需要link.exe来进一步处理的最主要原因。

汇编程序基本上与机器码一一对应(只多了一些宏指令、伪指令)。
hyb8181 2006-11-09
  • 打赏
  • 举报
回复
楼上的能说明白点吗?多谢啦

你的目的是让我明白,对不?可我还没明白哦,呵呵
hyb8181 2006-11-08
  • 打赏
  • 举报
回复
HELP
hyb8181 2006-11-08
  • 打赏
  • 举报
回复
DEBUG窗口里面出现的是:Loaded 'C:\WINDOWS\system32\apphelp.dll', no matching symbolic information found.

你的意思是?按F11?没调出来.
Alan S1 2006-11-08
  • 打赏
  • 举报
回复
debug里面可以看得到啊
mLee79 2006-11-08
  • 打赏
  • 举报
回复
cl /Fa hello.c
gcc -S -o hello.S hello.c
hyb8181 2006-11-08
  • 打赏
  • 举报
回复
HELP

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧