码迷,mamicode.com
首页 > 编程语言 > 详细

汇编语言概述

时间:2014-10-17 06:15:14      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:程序设计   汇编   

1.1  机器语言

既然要讲汇编语言就不能不提机器语言了,机器代码是由01组成的指令序列,计算机可以直接执行机器代码,因此用机器语言编写的程序执行速度快,既然这样,那为什么现在的程序员基本上不用机器语语言编写程序呢?下面举一个用机器语言编写的程序,大家就应该很容易明白了,下面这段代码是一个用机器语言写的程序的一部分,是在我的HP机器上写的:

                            1011001010100101001101001010010010
                     0110010010100100101001010101010001
                     0010100110100000111001010101010100

现在问大家:这段代码的功能是什么?相信大家都看不懂吧,此外若不小心把程序写成了下面这个程序,请你找出这个错误: 

                            1011001010100101001101001010010010
                            0110010010100100101101010101010001
                            0010100110100000111001010101010100

   你是不是有种欲哭无泪的感觉呢?这还只是一个非常小的代码段,这就如此麻烦了,要是来个上万甚至几十万行的机器代码,那还不得把人得弄死,这就暴露了机器语言晦涩难懂,难以修改维护的缺点。 

此外,我前面特意强调了是在HP机器上编写的代码,这不是在为HP打广告。之所以强调这个是因为如果我现在把这个程序放到另外一台mac或者其它的电脑上,这段程序就不能运行了。程序员编写的程序是为大家服务的,对于完成同一功能的程序,总不能针对每一台电脑都编写一个版本吧。机器语言的第二个缺点就凸显出来了:可移植性差。

看看,机器语言有这么严重的缺陷,我看只有傻子才会用它编写程序吧,这就是机器语言几乎销声匿迹的原因了。

1.2  汇编语言

    既然机器语言那么晦涩难懂,程序员在编写程序的时候需要记忆大量的机器指令且容易记错,给整个软件的行业的发展带来了障碍,但是人类的智慧是无限的,人们发明了汇编语言,汇编指令是机器指令的助记符,每一条汇编指令都有与之一一对应的机器指令,对于程序员来说这是个很大的福音,他们不需要再记那些枯燥的01序列了。

    汇编语言的出现确实在很大程度上解放了程序员,但是我们需要知道的是,计算机只认识01序列,即机器指令,并不认识我们所写的汇编指令,要让计算机能够执行我们所写的汇编程序,必需存在一个“翻译”,能够将我们的汇编程序翻译为计算机能识别执行的机器码,这个翻译就是“编译器”。当然,在由汇编代码à机器码的转换过程中,并不仅仅只是编译器的功劳,还牵涉到链接器等等。下图是将汇编程序转换为可执行机器码的过程;这是一个极其复杂的过程,不在本文的讨论范围内,有兴趣的同学可以查阅相关资料。

bubuko.com,布布扣


  


本文出自 “小马哥的博客” 博客,请务必保留此出处http://9501830.blog.51cto.com/9491830/1564965

汇编语言概述

标签:程序设计   汇编   

原文地址:http://9501830.blog.51cto.com/9491830/1564965

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!