ASM(汇编语言)真要被扫进历史的垃圾堆了吗?

2019-12-10 18:08发布

最近浏览一个挺流行的视频 – X天学会单片机。内容确实通俗易懂,制作的比较用心。但其中的有个观点笔者不敢苟同,就是现在 C 语言已经强大到胜任所有任务,大家没有必要再去学习汇编语言了,直接从 C 学起就行了。

这种观点似乎有一定道理,我甚至怀疑现在是不是真的有很多同学不再学习汇编了。特别是现在大多数厂商都提供了完备的驱动代码的情况下,我们做项目基本上用不到写 ASM 代码了。...

完整内容见附件
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
80条回答
newkey
1楼-- · 2019-12-13 21:51
因为没学过,所以.......
newID
2楼-- · 2019-12-13 22:57
 精彩回答 2  元偷偷看……
ziruo2002ab
3楼-- · 2019-12-14 02:22
这种讨论没什么意义。汇编自有其用途,在最底层的于硬件接口的地方,C无法完全兼容,这时就需要汇编。
只是这些年来,随着硬件cpu运行能力的富余,汇编的作用逐渐退出历史舞台,但是需要用到的地方还是无可避免。
wqsjob
4楼-- · 2019-12-14 07:55
lizg 发表于 2019-10-6 22:35
是的,今年暑假一亲戚的小孩在读大学,听说我在用C写程序,一脸的迷惑。说某某语言的一条语句的功能,相 ...

呵呵,他可能不知道,他调用的那些模块都是C或其他语言编写的。
takashiki
5楼-- · 2019-12-14 09:06
lingdianhao 发表于 2019-10-6 20:33
这个是不可能的,只是如果你纯粹做算法,不考虑效率,用高级语言没啥问题。有很多特有的东西只能汇编做,比 ...

编译器不知道,但是库函数知道,只是是平台相关罢了。这都不是问题。
截图:Keil的<core_cmInstr.h>文件中的大小端转换的函数:REV、REV16、REVSH、RBIT的都有。计算前导零的内置函数__clz也有。

sd3.png (54.48 KB, 下载次数: 0)

下载附件

2019-10-7 08:13 上传

takashiki
6楼-- · 2019-12-14 11:43
ilawp 发表于 2019-10-6 22:26
stm32的大小端转换指令是啥?之前都是笨笨的查表

请看我30楼,Keil内置了这些函数

一周热门 更多>