通过visual studio生成与查看汇编代码

1、生成汇编代码

可以在项目属性中设置汇编程序输出,可以根据需要设置带不带机器码或源码。这里设置带机器码的汇编输出。

设置好之后,生成项目文件时,会额外多一个.cod后缀的文件,这就是带机器码的汇编文件。

2、查看汇编代码

以函数TargetFunction为例:

生成的汇编代码如下:

cpp 复制代码
; Line 5
$LN3:
  00000	48 83 ec 28	 sub	 rsp, 40			; 00000028H
; Line 6
  00004	48 8d 15 00 00
	00 00		 lea	 rdx, OFFSET FLAT:$SG4294967237
  0000b	48 8b 0d 00 00
	00 00		 mov	 rcx, QWORD PTR __imp_?cout@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A
  00012	e8 00 00 00 00	 call	 ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@PEBD@Z ; std::operator<<<std::char_traits<char> >
; Line 7
  00017	48 83 c4 28	 add	 rsp, 40			; 00000028H
  0001b	c3		 ret	 0

对源程序进行调试

查看函数TargetFunction起始地址中的内容,发现和汇编代码中的机器码时可以完全对应的。

注意:指令的的一些地址可能与实际有关。

相关推荐
chuxinweihui44 分钟前
初识c++
开发语言·c++·学习
blueshaw3 小时前
CMake中的“包管理“模块FetchContent
c++·cmake
LILI000004 小时前
C++静态编译标准库(libgcc、libstdc++)
开发语言·c++
孞㐑¥5 小时前
C++之特殊类设计及类型转换
开发语言·c++·经验分享·笔记
毛茸茸斑斑点点6 小时前
补题 (Multiples of 5)
c++
CodeWithMe6 小时前
【中间件】bthread_基础_TaskControl
c++·中间件
李匠20247 小时前
C++负载均衡远程调用学习之自定义内存池管理
c++·学习
姆路7 小时前
Qt官方案例知识点总结(拖放操作——Drag And Drop Robot )
c++·qt
win水7 小时前
C++(初阶)(十六)——set
c++·set
虾球xz8 小时前
游戏引擎学习第252天:允许编辑调试值
c++·学习·游戏引擎