汇编语言(Assembler Language)

[编辑]

什么是汇编语言

汇编语言是指能反映指令功能的助记符表达的计算机语言,它是符号化的机器语言。用汇编语言写出的程序是汇编语言源程序,机器无法执行。必须用计算机配置好的汇编程序把它翻译成机器语言目标程序,机器才能执行。这个翻译过程就是汇编过程。汇编语言比机器语言在编写、修改、阅读方面均有很大改进,运行速度也快,但掌握起来比较困难。

[编辑]

汇编语言的特点

汇编语言采用了助记符来编写程序,比用机器语言的二进制代码编程要方便些,在一定程度上简化了编程过程。汇编语言的特点是用符号代替了机器指令代码,而且助记符与指令代码一一对应,基本保留了机器语言的灵活性。使用汇编语言能面向机器并较好地发挥机器的特性,得到质量较高的程序。

汇编语言是面向具体机型的,它离不开具体计算机的指令系统,因此,对于不同型号的计算机有着不同结构的汇编语言,而且,对于同一问题所编制的汇编语言程序在不同机型类别的计算机间是互不相通的。

汇编语言中使用了助记符号,对于用汇编语言编制的程序,计算机不能像用机器语言编写的程序一样直接识别和执行,必须经过预先放人计算机的“汇编程序”的加工和翻译才能变成能够被计算机识别和处理的二进制代码程序。用汇编语言等非机器语言书写的符号程序称为源程序,运行时汇编程序要将源程序翻译成目标程序。目标程序是机器语言程序.它被安置在内存的预定位置上后,就能被计算机的CPU处理和执行。

汇编语言像机器指令一样,是硬件操作的控制信息,因而仍然是面向机器的语言,使用起来还是比较繁琐费时,通用性也差。但是,汇编语言用来编制系统软件和过程控制软件,其目标程序占用内存空间少,运行速度快,有着高级语言不可替代的用途。

汇编语言指令能够直接控制硬件,例如访问I/O端口;而高级语言不提供对于硬件的控制。高级语言程序的效率取决于编译器翻译高级语言程序的方式,由于编译器必须可以翻译所有可能的高级语言代码,因此在某些情况下编译器翻译出的机器语言可能不是最有效的机器语言。而汇编语言指令和机器语言指令是一一对应的,因此使用汇编语言可以确保代码的高效性。编写一个完整程序可能不能体现汇编语言高效率的优势。若仅编写部分程序,在执行时常常可以获取较高的效率。在多数情况下,汇编语言程序员编写汇编语言程序不是为了实现一个完整的系统或者是一个程序,而仅仅是编写选定的模块。例如,可以通过写出口例程(exit routine)用户化应用程序或操作系统。为了保证与宿主语言程序能正常接口,常常需要用汇编语言编写这样的出口例程。

[编辑]

汇编语言的优缺点

一、汇编语言的优点

汇编语言的语句与机器语言的指令是一一对应的,因此它具有机器语言的一些特点,其优点如下。

(1)易于理解与记忆。

(2)能利用机器指令精确地描述算法,编程质量高。

(3)所占存储空间小。

(4)执行速度较快。

二、汇编语言的缺点

(1)与机器语言一样,程序通用性差。每一种汇编语言都是为某种特定类型的计算机专门设计的,不同类型计算机的汇编语言不能通用。

(2)汇编语言与机器语言一样都依赖于机器,与计算机硬件直接相关,也是面向机器的语言。

[编辑]

汇编语言的应用

汇编语言作为最基本的编程语言之一,虽然它的应用范围不算很广,但重要性却毋庸置疑,因为它能够完成许多其他语言所无法完成的功能。例如Linux内核的绝大部分代码是用C语言编写的,但仍然不可避免地在某些关键地方使用了汇编代码,其中主要是在Linux的启动部分。由于这部分代码与硬件的关系非常密切,即使是C语言也会有些力不从心,而汇编语言则能够很好地扬长避短,最大限度地发挥硬件的性能。70%以上的系统软件是用汇编语言编写的。某些快速处理、位处理、访问硬件设备等高效程序是用汇编语言编写的。某些高级绘图程序、视频游戏程序也是用汇编语言编写的。

汇编语言是理解整个计算机系统的最佳起点和最有效途径.人们经常认为汇编语言的应用范围很小,而忽视它的重要性。其实汇编语言对每一个希望学习计算机科学与技术的人来说都是非常重要的,是不能不学习的语言。所有可编程计算机都向人们提供机器指令,通过机器指令人们能够使用机器的逻辑功能。所有程序,不论用何种语言编制,都必须转成机器指令,运用机器的逻辑功能,其功能才能得以实现。机器的逻辑功能、软件系统功能构筑其上,硬件系统功能运行于下。汇编语言直接描述机器指令,比机器指令容易记忆和理解。通过学习和使用汇编语言,能够感知、体会、理解机器的逻辑功能,向上为理解各种软件系统的原理打下技术理论基础;向下为掌握硬件系统的原理打下实践应用基础。学习汇编语言向上可以理解软件,向下能够感知硬件,是理解整个计算机系统的最佳起点。

[编辑]

参考文献

↑ 本书编写组编.第二章 会计电算化的工作环境 初级会计电算化 第4版.东北财经大学出版社,2011.09.

↑ 赵忠孝,赵晔编著.第一章 绪论 新编C程序设计教程.机械工业出版社,2011.08.

本条目对我有帮助3

MBA智库APP

扫一扫,下载MBA智库APP

分享到:

C汇编语言是符号化的机器语言,汇编语言相关推荐

  1. python语言属于机器语言汇编语言高级语言自然语言_机器语言,汇编语言,高级语言的主要特点及区别是什么...

    机器语言是计算机能直接运行的语言,是二进制语言,属于低级语言:汇编语言是面向机器的低级语言,不能被机器直接识别,需要编译:高级语言是从人类的逻辑思维角度出发的计算机语言,不能被机器直接识别,需要编译. ...

  2. 机器语言-汇编语言-高级语言各自优缺点

    机器语言 所有的代码里面只有0和1 优点:直接对硬件产生作用,程序的执行效率非常高 缺点:指令又多又难记.可读性差.无可移植性 汇编语言 符号化的机器语言,用一个符号(英文单词.数字)来代表一条机器指 ...

  3. 计算机原理之机器语言, 汇编语言, 高级语言

    计算机成立之初, 还没有高级语言, 人们是手动将0101的纸带放入计算机, 0的话就挖一个洞, 1就不用挖洞, 当时最怕虫子掉上面, 引起计算机读取异常, 所以说程序出bug就是这么来的, bug的英 ...

  4. 用计算机汇编语言的程序是经过,汇编语言程序

    汇编语言程序也称为汇编语言源程序,就是用汇编语言编写的一种计算机程序, 属于计算机低级语言程序,是属性为ASM的源文件.汇编语言程序在经过汇编.链接后得到可执行程序即EXE文件. 汇编语言程序里面包括 ...

  5. 8051系列单片机汇编语言指令速查表(汇编语言的111条指

    8051系列单片机汇编语言指令速查表(汇编语言的111条指_纳兰容若的左手_新浪博客 http://blog.sina.com.cn/s/blog_6486c0b30100gqew.html 编号 指 ...

  6. 为什么要学习汇编语言?如何正确学习汇编语言?

    汇编语言是计算机系统结构的接口,它介于软硬件之间,学习的时候,必须结合软件和硬件来学习. 1 向上结合高级语言 学习汇编语言的时候,不可孤立学习汇编语言,当今时代很少之间用到汇编语言编程,但是使用汇编 ...

  7. std在汇编语言是什么指令_汇编语言的各种指令的用法

    展开全部 汇编语言指令集 汇编指令是汇编语言中使用的一些操作符(如62616964757a686964616fe58685e5aeb931333330363131mov,inc,loop)和助记符,还 ...

  8. 机器语言,汇编语言,高级语言,c,java语言编译到运行过程

    机器语言:    计算机的硬件作为一种电路元件,它的输出和输入只能是有电或者没电,也就是所说的高电平和低电平,所以计算机传递的数据是由"0" 和"1"组成的二进 ...

  9. python属于汇编语言还是高级语言_python是汇编语言吗

    python是汇编语言吗?这个问题的本质是高级语言和低级语言的概念,汇编是数据机器语言,而Python是高级编程语言. 那么高级语言和低级语言是什么? 最初的计算机程序都是用0和1的序列表示的,程序员 ...

  10. AM335X的汇编语言与c语言,X86汇编语言学习手记 -- 汇编和C协同

    X86汇编语言学习手记(3) 2004年12月 在X86汇编语言学习手记(1)(2)中,可以看到栈(Stack)作为进程执行过程中数据的临时存储区域,通常包含如下几类数据: 局部变量 函数调用的返回地 ...

最新文章

  1. Tim Berners-Lee重新分散的新Web SOLID简介
  2. 黑色星期五c语言,求黑色星期五问题~
  3. (二十)java多线程之ScheduledThreadPoolExecutor
  4. 手机python软件怎么创建项目_创建成功的 Python 项目
  5. Objective-C中.h、.m、.mm的区别
  6. 手机游戏繁荣时代,团队的N条死路
  7. Android 使用自带的HttpClient进行https请求出现403的解决过程记录
  8. 自己动手实现一个malloc内存分配器 | 30图
  9. 类火墙的iptables
  10. java 引用机制_Java编程开发之浅析Java引用机制
  11. 微软鼠标测试软件,微软sculpt鼠标评测 | 微软sculpt人体工学无线鼠标评测_什么值得买...
  12. A Style-Aware Content Loss for Real-time HD Style Transfer(一个风格转换的风格感知损失)CVPR2018
  13. PDF怎么编辑修改内容
  14. 网页中插入透明Flash的方法和技巧
  15. 网站被劫持都有哪些方式
  16. 明明安装了模块/包,Python提示无包/模块/报错
  17. 去掉图题注 空格_【转载】论文排版-Word插入题注时自动删除标签与编号前的空格,编号后添加空格...
  18. 计算机系统check,计算机巡回检测控制系统的容错设计(Fault-tolerant Design of Computer Cyclic Check and Control System)...
  19. Tensorflow问题记录
  20. 网络安全等级保护测评高风险判定-安全计算环境-4

热门文章

  1. 住建部印发《全国建筑设计周期定额》——建设和设计单位“不得压缩”设计周期...
  2. 快手火山美拍秒拍抖音映客yy小影视频批量下载毛驴保存去水印助手
  3. 软件工程大一至大四课程
  4. 弱电箱只埋了一根网线时,如何上网和IPTV兼顾?
  5. MySQL 8.0.28 忘记密码,重置密码
  6. Spoon工具的使用
  7. 微信小程序引入阿里巴巴icon步骤及报错解决
  8. 软考高项的工作前景:
  9. Android JS 通过X5WebView相互调用详解
  10. 2021年5月CCAA注册审核员考试认证通用基础真题