论坛元老
 
- 积分
- 4163
- 金钱
- 4163
- 注册时间
- 2017-10-24
- 在线时间
- 251 小时
|
发表于 2018-8-24 09:25:59
|
显示全部楼层
汇编和高级语言编程各有各的应用场景,撇开应用场景谈谁更有前途谁更好之类的就是在耍流氓。
如果一个工程要求极高的实时性,功能上不是特别复杂,并且成本敏感,那么可能的情况下就选择汇编。
如果一个工程要求的开发时间短,老板希望你尽快赶出样机;或者要求实现的功能复杂,啥都要有,那么不用想了高级语言。我甚至可以考虑用C++。
如果自己需要定制一个任务调度系统,或者就是操作系统,那么内核任务的切换,临界区的进入和退出,切换任务时当前任务执行状态的保存和新任务状态的恢复,这些功能是高级语言哪怕是C所难以做到的。大部分操作系统也都是用了C和汇编结合的方式。汇编语言的特性决定了这样的工作最适合用汇编的方法实现,但也同时限制了对于大型应用的应用——不然为什么计算机前辈们会不辞辛劳地将编程方法从BASIC ,C/C++,fortran,pascal,java这些早期的高级语言发展到现在的Python,Delphi,Ruby?
我觉得意法半导体开发出标准库和HAL库是绝壁正确的选择,不然STM32学习时间成本太高,很多人会望而却步。现在的编程思想就是,用最快的时间实现我想要的功能。STM32本身也确实有足够的资源可以应对普通的应用。
回到楼主的问题,在这个前提下,汇编开发几乎不可能得到大范围的应用,事实上除了写一些操作系统底层功能之外我还真没看到过有人真正地用汇编写实际工程的代码(也可能是和我的环境在学校里有关系)。并且C语言还有汇编没有的移植性,更是可以大大加速开发过程。另外说C慢的,你们有用过编译器的优化功能吗?
PS:如果自己玩,随便啦,自己想用啥用啥,用出优越感也没人说你。不过我也想说,确实汇编大法好,那种感觉是芯片把自己的心脏暴露给你,通过指令似乎能够看到背后的各种译码器选择器加法器,就是直接在操作硬件。不过要说开发,我站在高级语言这边。
|
|