分享

学习汇编语言有什么好处?

 昵称11935121 2018-04-18

汇编作为一个古老的语言,除了特定领域比如嵌入式开发的boot loader部分以及做逆向及破解工程方面外,实际上基本上很少能接触的到。但是虫虫还是强烈建议所有搞CS和IT的同学一要学一些汇编知识,为什么呢?

理解计算机体系结构

汇编可以让人你真正理解计算机体系结构,让你知道程序是怎么被硬件执行的?

内存是怎么用的,cpu怎么计算的,为什么你计算机的“1+1”就解决了我们现实中这么多的问题。


计算机一个典型的体系结构如下:

包括了cpu ,RAM内存、总线,其他组件,所有这些怎么和CPU打交道的呢?


其实上很简单,cpu只管从内存的特定地址去数据(指令)执行,然后返回给特定的地址,其他硬件也是存取特定地址的内存地址。

CPU都有特定的几个存储单元,叫寄存器(指令放进来,执行,然后还下一个指令),比如CS、DS、SS、ES、IP等,其中CS和IP是最重要的两个寄存器,CS:IP的地址表示的是当前CPU处理的指令。比如下面就是一个cpu执行的实例:

总之,CPU执行程序就是CS:IP给他喂什么内容他就执行什么内容,其他的他一律不管。

如何学习汇编语言

虫虫建议的是不必要深入,起码的有知道,了解,比如上面提到那些执行过程,当然还有内存管理,学完了你就真正知道指针啊、栈啊、堆啊这些是怎么回事。

学习汇编语言,买一本书王爽老师的《汇编语言》,耐心地读下去,读懂就行了,一般没必要会用,会精通。


汇编能力层级:

最后附带一个别人总结的汇编能力,如果有心对它做深造的可以研究下:

另外还有一本书,在学了王爽书以后,可以做为进阶用的。推荐《Assembly Language for x86 Processors 6th Edition》

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多