为什么要学习汇编
我觉得,对于一个合格的、资深的程序员来说,学习汇编和理解汇编是必不可少的。这里的汇编不特指某一平台的汇编,但其实核心内容都一样。
原因如下:
- 学习汇编帮助你理解高级语言的运行
- 深度调试时的需要
- 编译器不总是对的
尤其是 C/C++ 这类的编程语言,有很多坑,而一些书或者人只告诉你不能这样做,但是为什么不能这样做,只有汇编才能告诉你。
还有比如程序优化,只有通过反汇编,你才能确定,程序优化的结果。
以及一些编译器的坑,编译器也是人写的,不能100%正确,那你怎么确定是你的问题还是编译器的问题?只有汇编能救你。
学习汇编的好处
学汇编不是说一定要用这玩艺做多牛鼻的事情, 问题的关键在于, 学透了汇编会使你真正理解计算机
另外一方面, 如上面所说, 在工作中你迟早会在某个阴暗的角落遇到汇编. 不管你承认不承认, 现在的CPU没有直接跑高级语言的, 哪怕是虚拟机也都是类似汇编的指令集.
当遇到崩溃分析, 性能优化甚至编译器抽风等等的时候, 汇编是你最后一根救命稻草.