早期在编程时,大多数应用程序部分或全部用汇编语言编写。它们不得不适应小内存,并尽可能在慢速处理器上有效运行。随着内存容量越来越大,以及处理器速度急速提高,程序变得越来越复杂。

程序员也转向高级语言如 C语言、FORTRAN COBOL,这些语言具有很多结构化能力。最近,Python、C++、C# 和 Java 等面向对象语言已经能够编写含数百万行代码的复杂程序了。

很少能看到完全用汇编语言编写的大型应用程序,因为它们需要花费大量的时间进行编写和维护。不过,汇编语言可以用于优化应用程序的部分代码来提升速度,或用于访问计算机硬件。

下表比较了汇编语言和高级语言对各种应用类型的适应性。

应用类型 高级语言 汇编语言
商业或科学应用程序,为单一的中型或大型平台编写 规范结构使其易于组织和维护大量代码 最小规范结构,因此必须由具有不同程度经验的程序员来维护结构。这导致对已有代码的维护困难
硬件设备驱动程序 语言不一定提供对硬件的直接访问。 即使提供了,可能也需要难以控制的编码技术,这导致维护困难 对硬件的访问直接且简单。当程序较短且文档良好时易于维护
为多个平台(不同的操作系统)编写的商业或科学应用程序 通常可移植。在每个目标操作系统上, 源程序只做少量修改就能重新编译 需要为每个平台单独重新编写代码, 每个汇编器都使用不同的语法。维护困难
需要直接访问硬件的嵌入式系统和电脑游戏 可能生成很大的可执行文件,以至于超出设备的内存容量 理想,因为可执行代码小,运行速度快

C 和 C++ 语言具有一个独特的特性,能够在高级结构和底层细节之间进行平衡。直接访问硬件是可能的,但是完全不可移植。大多数 C 和 C++ 编译器都允许在其代码中嵌入汇编语句,以提供对硬件细节的访问。

汇编语言的应用(用途)相关推荐

  1. 汇编语言第4周学生总结反馈

    汇编语言程序设计课到第4周.这周的课后总结中,让同学们写下"我的疑惑".这倒好,真引出了一大堆好问题,其实,这也就是大家学习的最真实情况. 为同学们的解答公布如下.下一周,老贺不做 ...

  2. 汇编语言使用C库函数和Linux动态链接

    使用printf 代码 #cpuid2.s -- Using C labrary calls .section .data output: .asciz "The processor Ven ...

  3. 汇编call指令详解_我也能写出雷军的的代码吗?最好的汇编语言入门教程在这里!...

    作者:阮一峰 链接:http://www.ruanyifeng.com/blog/2018/01/ 之前,嵌入式Arm曾经发送过一篇名<给跪了!来看看雷军 1994 年写的代码,经典老古董(附完 ...

  4. 汇编语言-第四章 第一个程序

    2019独角兽企业重金招聘Python工程师标准>>> 一个源程序从写出到执行的过程 编写汇编源程序 对源程序进行编译链接 1.使用 汇编语言编译程序对源程序文件中的源程序进行编译, ...

  5. 使用MASM04 - Win32汇编语言012

    使用MASM04 让编程改变世界 Change the world by program 调用API函数 习惯工作于DOS汇编的程序员同志都有一个愿望:如果说,能够以功能名称作为子程序名直接调用,他们 ...

  6. 8086汇编语言指令总结

    根据工作需要,从基础学起,设计一台嵌入式CISC模型计算机,稍后上传. 先总结下,汇编语言指令,如下 1. MOV(传送) 指令写法:MOV  target,source 功能描述:将源操作数sour ...

  7. c51单片机跑马灯汇编语言,单片机跑马灯汇编程序 单片机汇编程序编写技巧

    [摘 要]在用汇编语言编写单片机程序时,由于编程方法或者选用指令的不同,会造成实现相同功能的程序,执行时间的长短和程序占用内存空间的大小都不相同,占用内存空间少.执行时间短是编写汇编程序最基本的原则. ...

  8. 汇编语言——基础知识

    目标 1.了解机器语言.汇编语言.汇编源程序.汇编程序.汇编.宏汇编程序等基本概念,正确认识学习汇编语言的重要性. 2.掌握8086处理器中各寄存器的符号表示形式.大小及主要用途. 3.理解主存的编址 ...

  9. 王爽汇编语言C硬盘读写,王爽汇编语言学习笔记(范文).doc

    本科毕业设计(论文)外文资料翻译 第 PAGE \* Arabic 1 页第 PAGE \* Arabic 1 页 第一章 基础知识 ◎汇编语言由3类指令组成 汇编指令:机器码的助记符,有对应机器码. ...

最新文章

  1. Kali2021.2 VMware最新版安装步骤
  2. AI工程师面试知识点:TensorFlow 框架
  3. if语句输入月份判断季节_C语言循环及条件语句
  4. 利用微信登录掘金网站的HTTP请求分析
  5. Java中继承thread类与实现Runnable接口的区别
  6. stm32按键矩阵代码_STM32 学习笔记---1
  7. jeesite缓存问题
  8. 转使用jQuery Ajax的内存回收
  9. 【广搜】Keyboarding
  10. java 操作属性值_java反射机制根据属性名获取属性值的操作
  11. 基于JAVA+SpringBoot+Mybatis+MYSQL的个人理财系统
  12. 阶段3 3.SpringMVC·_02.参数绑定及自定义类型转换_3 配置解决中文乱码的过滤器
  13. live2d手机制作软件_Live2d( 动画制作软件 )中文版分享
  14. 软件测试项目案例.pdf,【精选】最经典软件测试案例.pdf
  15. 什么是AWS认证,有什么用?
  16. 如何不授权情况下获取自己微信openid/傻瓜式获取
  17. 苹果手机需要清理垃圾吗?
  18. setex php,python redis setex可以设value为list或者其他数据结构吗?
  19. excel 分组计数
  20. 循序渐进实现仿QQ界面(三):界面调色与控件自绘

热门文章

  1. 基于SpringBoot+MyBatis实现的私人影院系统
  2. Java实现荷兰国旗问题
  3. 初识Vulkun(9):图形流水线/管道
  4. 游标+bulk collect into limit的不同方法查询数据
  5. ssm基于Android的自来水收费系统APP-计算机毕业设计
  6. 虚拟机vn登陆服务器系统,虚拟机搭建windows服务器
  7. 全球及中国医学新生儿筛查解决方案行业专项研究与运营前景调研报告2022版
  8. Stm32H7XX GCC下分散加载实现
  9. 自考 02326 操作系统 综合题整理
  10. 用Daemon虚拟光驱安装Oracle9i的注意事项