随想录(多学一点汇编语言)
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甚至汇编的角度去理解自己编写的代码,这在无形之中就会大大提高个人的编写能力和设计水平。
我想说的差不多就这些,欢迎大家提宝贵意见。
不知道现在计算机专业的同学还需不需要学习汇编语言?反正工作之后,大部分人好像都不太熟悉汇编语言。据我所知,汇编用的好的,不是专门做编译工具的人,就是系统测试的人员,真正可以将系统、软件、汇编整合在一起的人少之又少。
至于为什么需要学习汇编,下面我谈谈自己的一些看法。
1、理解汇编,可以破除大家对软件和硬件的崇拜和迷思。软件,从本质上说,就是指令加状态机。后来因为复杂度的关系,逐步引入了系统、虚拟机、数据库、业务软件、网络这些概念。但是,表现cpu本质的汇编、中断这些concept,一直没有过时。
2、大部分软件在刚开始执行的时候,都需要执行一点点汇编代码,这个是逃不了的。为什么,因为soc上电的时候,bss要初始化,堆栈也用不了,只能用纯汇编来写了。另外,大部分的os上下文切换、任务创建、中断保护等等,这些也是需要用特定的汇编语言来编写的。
3、优化软件离不开汇编。现在的soc需要用来处理大量的语音数据和视频数据,因此除了传统的加减乘除、浮点指令之外,很多芯片还添加了独具特色的dsp指令,合理使用这些指令,可以大大提高软件的运行能力和执行效率。
4、解决软件根本问题的能力来自于对汇编的理解。很多同学调试软件的时候喜欢单步调试,本身这没有错。但是如果编译器本身对c代码做了大量的优化,那么很多问题不进入汇编层,根本是没有办法解决的,这个结论已经被证明了无数次。
5、提高阅读和编写汇编的水平会让个人编写软件的能力上一个台阶。理解了汇编,你会进一步了解mmu、中断、cache、互斥、多核等很多概念,为了让自己的软件可以长时间无故障地运行,你会逼着自己用机器、cpu甚至汇编的角度去理解自己编写的代码,这在无形之中就会大大提高个人的编写能力和设计水平。
我想说的差不多就这些,欢迎大家提宝贵意见。
相关文章推荐
- 扩展欧几里德原理
- Makefile模板
- hdu 5676 ztr loves lucky numbers(STL大法好)
- 公路乘车
- 用2263份证件照图片样本测试how-old.net的人脸识别
- HTML 中按钮作为form表单元素提交特性两则 --- 参HTML考标准分析
- 插件化-开启另外应用的activity
- c++ basic_strings
- Java Tomcat SSL 服务端/客户端双向认证
- 广义表的建立与求深度
- Spring Boot 属性配置和使用
- DNS域名系统详解
- Spring Boot 属性配置和使用
- Codeforces Round #349 (Div. 2)(A)模拟
- 安卓开发页面跳转
- UITableView的registerClass forCellReuseIdentifier释义
- 周赛题
- navicate功能
- PhoneApp的启动流程
- Java web之统计站点被访问的次数