您的位置:首页 > 其它

随想录(多学一点汇编语言)

2016-04-30 22:46 344 查看
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 

    不知道现在计算机专业的同学还需不需要学习汇编语言?反正工作之后,大部分人好像都不太熟悉汇编语言。据我所知,汇编用的好的,不是专门做编译工具的人,就是系统测试的人员,真正可以将系统、软件、汇编整合在一起的人少之又少。

    至于为什么需要学习汇编,下面我谈谈自己的一些看法。

    1、理解汇编,可以破除大家对软件和硬件的崇拜和迷思。软件,从本质上说,就是指令加状态机。后来因为复杂度的关系,逐步引入了系统、虚拟机、数据库、业务软件、网络这些概念。但是,表现cpu本质的汇编、中断这些concept,一直没有过时。

    2、大部分软件在刚开始执行的时候,都需要执行一点点汇编代码,这个是逃不了的。为什么,因为soc上电的时候,bss要初始化,堆栈也用不了,只能用纯汇编来写了。另外,大部分的os上下文切换、任务创建、中断保护等等,这些也是需要用特定的汇编语言来编写的。

    3、优化软件离不开汇编。现在的soc需要用来处理大量的语音数据和视频数据,因此除了传统的加减乘除、浮点指令之外,很多芯片还添加了独具特色的dsp指令,合理使用这些指令,可以大大提高软件的运行能力和执行效率。

    4、解决软件根本问题的能力来自于对汇编的理解。很多同学调试软件的时候喜欢单步调试,本身这没有错。但是如果编译器本身对c代码做了大量的优化,那么很多问题不进入汇编层,根本是没有办法解决的,这个结论已经被证明了无数次。

    5、提高阅读和编写汇编的水平会让个人编写软件的能力上一个台阶。理解了汇编,你会进一步了解mmu、中断、cache、互斥、多核等很多概念,为了让自己的软件可以长时间无故障地运行,你会逼着自己用机器、cpu甚至汇编的角度去理解自己编写的代码,这在无形之中就会大大提高个人的编写能力和设计水平。

    我想说的差不多就这些,欢迎大家提宝贵意见。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: