汇编语言可以说是所有语言的鼻祖,除了直接操作计算机的0/1之外,汇编语言是最接近于机器底层的语言了。现如今出现了各种各样的高级语言,如Python、Java、C#等等,使得程序员编程的效率得到质的飞跃,也正是因为有了更得力的编程语言作为程序员开发程序的新工具,越来越多的人觉得汇编语言已经无用,没有学习的价值了。对此你又是怎么认为的,欢迎将您独到的见解在留言区留言。

先说一下我的观点。首先我是作为一名嵌入式工程师,就我的工作领域来看,学习汇编还是很有必要的,可以说仍是一项必不可少的技能。下面具体讲一下我对学习汇编必要性的理由。

1、代码优化:可以通过代码对应的汇编来进行优化代码,使得代码的执行效率更高,例如使变量A扩大2倍。

A=A*2;

A=A A;

A=A<<1;

那么哪种方法是最优算法呢?答案是A=A<<1;下面看一下对应汇编码。

汇编语言一般学哪种(汇编语言真的没必要学了吗)(1)

对应汇编代码

可以看到现在的编译器都很智能,将这三种方式全部编译成A=A<<1;对应的左移汇编码:LSL(后缀S是改变标志位)。说明这种运行效果最优。

还有例如在编写中断服务函数时,如果想要执行速度更快,占用时间更短,那么,可以尽量减少使用函数嵌套,减少使用局部变量,尤其是有初始值的局部变量。因为对照汇编代码可以看出来,这些操作都是对应汇编指令的。当然还有其他一些优化方法这里就不做具体介绍了,可以自行研究汇编进行摸索。

2、深入了解CPU内核架构:很多使用高级编程语言的程序员已经逐渐淡化程序的底层原理,因为大多数情况下都是在使用编程语言提供好的库,怎么控制计算机硬件的已经封装好了,只需要一句代码就可以完成很多操作,使得很多一开始就上手高级语言的程序员认为程序本来就应该这样,殊不知是有人为你造好了轮子替你负重前行,但是轮子是方的还是圆的自己却从未研究过也未关心过。

我认为,初学编程还是不要直接上手高级语言,那种一句顶百句的语言是留给已经过了新手期的程序员提高工作效率的,不推荐作为第一个学习语言。就像学功夫一样,先把身体素质提高了,再去用武器,免得伤到自己。学编程想要以后走得远首先把C语言学精通,因为C语言既不用像汇编那样难记,也能够比较好的接近计算机底层,当C语言学的差不多了,就可以C结合汇编来强化学习,一定要对应汇编去把C语言的指针学好。C精通了,其他语言学起来很轻松。编程重在思想,C生万物,很多语言里都直接或变相继承和优化了C的特点。

3、防止未来人工智能->人智障:如果大家都不愿意去研究底层代码,这些又笨又累的活都交给电脑去完成,经过很多代计算机及编程语言的迭代以后,可能到那时候已经没人会计算机底层原理,这些知识被人工智能的机器人垄断,到时候卡人类脖子的可能就是这些计算机基础知识。强大的对手并不可怕,可怕的是你对它一无所知。(本段纯属虚构!哈哈哈哈!)

汇编语言一般学哪种(汇编语言真的没必要学了吗)(2)

,