C/C++程序员为什么要了解汇编?了解汇编有哪些好处?如何学习汇编?
目录
1、概述
2、从汇编的角度去理解问题的若干实例说明
2.1、使用空指针去访问类的数据成员或调用类的虚函数为什么会引发崩溃?
2.2、从汇编代码的角度去理解多线程的执行细节,去理解多线程在访问共享资源时为什么要加锁
2.3、使用Windbg静态分析dump时先从崩溃的那条汇编指令中得到初步的线索
3、了解汇编有哪些具体的好处?
3.1、在代码中插入汇编代码块,提升代码的执行效率
3.2、在分析C++软件异常时可能需要查看汇编代码
3.3、从汇编代码的角度可以理解很多高级语言没法理解的代码执行细节
3.3.1、函数调用时主调函数是如何将参数传递给被调用函数的
3.3.2、 从汇编代码的角度可以很好地理解多线程编程中的代码执行细节
3.3.3、Switch...case语句中case分支过多引发Stack Overflow线程栈溢出问题
4、C/C++程序员如何学习汇编?
4.1、常用汇编指令
4.2、常用寄存器的用途
4.2.1、EAX寄存器
4.2.2、ECX寄存器
4.2.3、ESI和EDI寄存器
4.2.4、ESP和EBP寄存器
4.2.5、EIP寄存器
4.2.6、段寄存器
4.2.7、标志寄存器EFlags
4.3、函数调用时栈分布情况
4.3.1、函数调用的栈分布
4.3.2、关于call指令和ret指令的说明
4.3.3、查看函数调用时的汇编代码,看函数调用堆栈分布实例
4.4、熟悉虚函数调用的汇编实现
4.4.1、虚函数调用过程中的两次寻址
4.4.2、虚函数调用的汇编代码走读
4.5、可以在VS中调试代码时查看C++代码对应的汇编代码
5、使用IDA查看二进制文件的汇编代码
6、如何看懂汇编代码上下文?
7、最后
C++软件异常排查从入门到精通系列教程(专栏文章列表,欢迎订阅,持续更新...)https://blog.csdn.net/chenlycly/article/details/125529931