学习汇编语言有什么好处?_第1页
学习汇编语言有什么好处?_第2页
学习汇编语言有什么好处?_第3页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、本文格式为Word版,下载可任意编辑学习汇编语言有什么好处? 这样比方吧:一个程序员,不懂汇编的阅读和用于汇编级指令级的调试这正如一个顶级的世界F1方程式赛车手,不懂得赛车的构造和运行,是不行的。汇编和C/C+在破解和加密解密中都是特别重要的,高级语言根本无法对数据位进行操作,能操作数据位的只有汇编和C/C+,说的很具体,用汽车来举例也很贴切,我再举一个例子,许多需要注册的共享软件需要猎取硬盘序列号,早期硬盘有特地的指令,现在的固态和机械硬盘早就不支持指令猎取了,高级语言遇到这个问题就抓瞎,目前我见过的猎取硬盘序列号的工具无一例外都是用汇编和C/C+写的,区分在于汇编写的程序更精简,只需要1-

2、2KB空间,C/C+写的程序在十几KB左右。 学Java的可能会说,Java高端的很,不懂汇编没关系是的,你开轿车,在平整的大路上跑60码,用自动档,当然不需要知道轿车的内部结构是怎么样的,离合器的工作本质是怎么样的,在这样的基础下,你一样可以把车开得很娴熟。 但有一天,你没有一切都帮你搞定的轿车了,给你一辆有问题的车,你得自己修好它,才能逃离你当下的环境比如你在沙漠里。 你说汇编重不重要,看懂它重不重要?学会汇编,学会的不仅是一种语言还是学会了现代高级编程语言依靠运行的底层微机结构的原理本质。你说有什么好处?来跟我重复一遍:学会汇编,学会的不仅是一种语言还是学会了现代高级编程语言依靠运行的底

3、层微机结构的原理本质。 学习汇编只是基础,假如想要汇编可以有所作用,可以连续讨论: 并不是说必需学了汇编才能理解操作系统,而是说看问题的深度不一样。 有了汇编的保驾护航, 你可以在头脑中建立起一个有更多细节,更多实现的计算机, 那些概念不是模糊的,而是清楚的、鲜活的。 操作系统的运行原理, 肯定是程序员受益一生的学问。 比如说后端编程,不了解OS的进程、线程、 页面缓存,文件系统,I/O 就去大谈如何实现一个高并发、大数据量的网站简直就是笑话。 再比如对JVM的学习, 假如你懂得汇编, 看到JVM的字节码、看到栈帧就会觉得很亲切,只需要把基于寄存器的计算方式转换成基于栈的计算方式就可以了。 我

4、们的计算机学问就像一座金字塔, 底层是数学, 上面是数字电路,然后是汇编,再往上是操作系统、网络,数据库、高级编程语言、框架等等. 我们每个人不行能精通这个金子塔的每一层, 但是要把握、理解构成这个金字塔的核心概念。 在应用层编程, 不肯定要把握汇编, 但是把握汇编能让我们更透彻的看待我们赖以为生的虚拟世界 , 没错, 你要想成为黑客帝国中的Neo, 汇编必需得学。 我有时候会胡思乱想: 假如这个编程世界根本没有什么Java, Python, C+, Javascript , PHP, 只有汇编这么一种语言, 像 Rod Johnson(Spring之父), DHH(Ruby on Rail之

5、父) , Eric Gamma (JUnit, Eclipse) , Gavin King(Hibernate之父) 这些在应用层编程的大牛们, 他们用汇编写程序会是什么样子? 他们会制造出什么东西出来? 我想有一点是确定的: 即使是使用汇编,他们的编程技能仍旧会毫不留情的把我碾压成渣渣。 缘由很简洁, 一个驾驭过简单系统的人,他的规律思维力量确定是强悍无比的, 汇编只是让他换了一个工具而已。 更可怕的是由于软件极难编写, 只有一帮大牛才有资格编程,才能成为程序员, 像我这样资质平凡者估量只能去搬砖吧。 1.汇编语言 汇编语言是最接近于机器语言的编程语言。假如说机器语言是计算机操作的本质那么汇

6、编语言就是最最接近本质的语言。汇编语言操作直接面对硬件。所以我们在使用汇编语言的时候,我们能够感知计算机的运行过程和原理,从而能够对计算机硬件和应用程序之间的联系和交互形成一个清楚的熟悉。这也是最能够熬炼编程者编程思维规律的,只有这样,学习者才能形成一个软、硬兼备的编程学问体系,这是任何高级语言都无法赐予的,相对于繁复的高级语言,汇编语言指令集合更简约,指令操作更直接,从汇编开头学习更符合循序渐进的学习原理。所以,对于计算机技术初学者或者自学者,汇编语言重要性无可替代 2.汇编语言之于高级语言,不否认在应用层面高级语言占据了软件开发市场的绝大部分。也正是这种现象误导了学习者甚者是训练者,所以目

7、前高校计算机专业的现状是,专业课程中C语言、C+、Java等高级语言一应俱全而毕业的同学却连简洁的程序都不能编写。为什么?听不懂、学不会。这就是缺乏基础造成的。汇编语言才是计算机技术的基础,而不是常说的C语言。之所以说汇编重要,其一个重要的缘由就是,汇编语言能够让你更好的理解高级语言,尤其是高级语言中的C语言。汇编语言对于内存的操作都是基于内存地址的,而C语言中最令人头疼的指针概念,说白了就是内存的地址。指针的学习和应用中最头疼的就是在指针这个抽象的概念和实际的内存单元之间建立思维映射,而这些恰恰是我们在汇编语言学习中频繁做的一件平常事。另外,对于C语言中的数据类型、形参实参、函数调用、全局变

8、量、局部变量等概念及操作,我们都可以用汇编语言中的一些操作相关联把这些抽象的概念和过程通过汇编语言形成一个详细的映像,深度剖析这样我们才能真正的学会、学好C语言。 有了汇编和C的基础,那些所谓的面对对象的语言学习起来就更为顺畅了,奉劝那些好高骛远的学习者,踏踏实实的从汇编开头吧。古云:磨刀不误砍柴工啊! 3.汇编语言之于应用 许多学习者放弃对于汇编语言的学习,是由于高级语言的开发更简单找到工作。这个理由也是我见到过的最现实的。但是,这里面明显存在着熟悉误区。首先,我们的学习是一个系统过程,我们的学问结构不是一个单一课程所能够建立的。所以,学习汇编的目的并不是非要用汇编去挣饭钱。由于汇编语言对于

9、一个编程人员所应当具备的基本素养的培育和形成得意义是特别重大的,这在前文中已经分析了,不再赘述;其次,汇编本身也是很重要的应用技术。由于学习者,尤其是在校的同学,平常接触的最多的是纯软件的东西。所以,觉得五花八门的软件才是计算机技术应用的舞台。那么这些人最终会成为那位博主提到的那些工作后才意识到汇编的作用的“师兄”。汇编的操作由于跟硬件紧密相关。所以,许多硬件设施的嵌入式编程使用的都是使用的汇编语言,由于汇编语言更直接、更有效率。我们现在的数码产品许多,而这些数码产品赖以生存的芯片、主板等。都包含了嵌入式程序,而这些程序中。汇编语言的使用是相当重要的。 偏硬件 低级(具有肯定的汇编力量,能写出

10、基本程序,基本的8086和win32都能看得懂) ·可以修改嬉戏数据 ·可以破解收费软件 ·可以自己写外挂(一刀999级不是梦) ·机子在跑高级语言的时候可以优化安排内存 中级(可以自己编写出比较高级的程序,开头专精汇编分支的某一种比如51单片机,ARM,X86,懂得硬件基本构造和计算机规律电路和CPU原理) ·可以自己编写调试底层系统 ·可以汇编/反汇编,可以进行病毒的编写和调试和破译 ·移动端系统底层/电子产品/硬件基本系统娴熟于心,可以进阶成一个真正的电子极客了。 ·黑客方面可以达到入侵心脏起搏器,学校的电子

11、屏,ATM屏幕,以及各种微电子系统,介于中级和高级之间。 ·最让人头疼的内核问题可以一眼看出来问题所在并解决 ·一般的汇编程序员大多数在这个水平 高级(这一层的人就是大牛或是大牛中的大牛了,对自己所娴熟的语言达到了驾轻熟就的地步,在电脑以及不同的,CPU运作方式方面达到了专家的级别) ·可以参加破解刷机各种手机系统,将手机系统玩弄于鼓掌之上的人 ·参加最新智能系统的编写(智能遥感,火箭以及飞机的操作系统),优秀的汇编高级工程师 ·国家网络平安局级别的大牛,类似震网病毒的破译与平安测试 ·自己写出来系统在同行属于出类拔萃。 ·

12、在汇编语言方面是不行多得的优秀的人才 神仙级别(世界上万里挑一,假如出来了会是一个国家的傲慢) ·独自破解iphone,索尼,独自讨论编写无人驾驶汽车系统的乔治霍期 ·讨论ATM机的CPU纹路走向和CPU对数据的处理方式的某黑客,能达到破解ATM机系统对其远程操控到自动吐钞的地步(后来这个黑客被人暗杀了) ·编写出一代ios系统的老乔 ·参加编写震网病毒的各路神仙。一次性能利用WINDOWS系统的20来个0day漏洞,程序的精致度令人发指,几行命令抵一般人几页命令 学习汇报语言的目的不是像学习高级语言那样。汇编是底层语言,学习它本身就有利于我们进一步了解底层计算机的运行。这对计算机的学习是个很基础的要求。随着现在越来越多高级语言的进展,不行否认为我

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论