汇编语言的应用(用途)
早期在编程时,大多数应用程序部分或全部用汇编语言编写。它们不得不适应小内存,并尽可能在慢速处理器上有效运行。随着内存容量越来越大,以及处理器速度急速提高,程序变得越来越复杂。
程序员也转向高级语言如 C语言、FORTRAN COBOL,这些语言具有很多结构化能力。最近,Python、C++、C# 和 Java 等面向对象语言已经能够编写含数百万行代码的复杂程序了。
很少能看到完全用汇编语言编写的大型应用程序,因为它们需要花费大量的时间进行编写和维护。不过,汇编语言可以用于优化应用程序的部分代码来提升速度,或用于访问计算机硬件。
下表比较了汇编语言和高级语言对各种应用类型的适应性。
应用类型 | 高级语言 | 汇编语言 |
---|---|---|
商业或科学应用程序,为单一的中型或大型平台编写 | 规范结构使其易于组织和维护大量代码 | 最小规范结构,因此必须由具有不同程度经验的程序员来维护结构。这导致对已有代码的维护困难 |
硬件设备驱动程序 | 语言不一定提供对硬件的直接访问。 即使提供了,可能也需要难以控制的编码技术,这导致维护困难 | 对硬件的访问直接且简单。当程序较短且文档良好时易于维护 |
为多个平台(不同的操作系统)编写的商业或科学应用程序 | 通常可移植。在每个目标操作系统上, 源程序只做少量修改就能重新编译 | 需要为每个平台单独重新编写代码, 每个汇编器都使用不同的语法。维护困难 |
需要直接访问硬件的嵌入式系统和电脑游戏 | 可能生成很大的可执行文件,以至于超出设备的内存容量 | 理想,因为可执行代码小,运行速度快 |
C 和 C++ 语言具有一个独特的特性,能够在高级结构和底层细节之间进行平衡。直接访问硬件是可能的,但是完全不可移植。大多数 C 和 C++ 编译器都允许在其代码中嵌入汇编语句,以提供对硬件细节的访问。
汇编语言的应用(用途)相关推荐
- 汇编语言第4周学生总结反馈
汇编语言程序设计课到第4周.这周的课后总结中,让同学们写下"我的疑惑".这倒好,真引出了一大堆好问题,其实,这也就是大家学习的最真实情况. 为同学们的解答公布如下.下一周,老贺不做 ...
- 汇编语言使用C库函数和Linux动态链接
使用printf 代码 #cpuid2.s -- Using C labrary calls .section .data output: .asciz "The processor Ven ...
- 汇编call指令详解_我也能写出雷军的的代码吗?最好的汇编语言入门教程在这里!...
作者:阮一峰 链接:http://www.ruanyifeng.com/blog/2018/01/ 之前,嵌入式Arm曾经发送过一篇名<给跪了!来看看雷军 1994 年写的代码,经典老古董(附完 ...
- 汇编语言-第四章 第一个程序
2019独角兽企业重金招聘Python工程师标准>>> 一个源程序从写出到执行的过程 编写汇编源程序 对源程序进行编译链接 1.使用 汇编语言编译程序对源程序文件中的源程序进行编译, ...
- 使用MASM04 - Win32汇编语言012
使用MASM04 让编程改变世界 Change the world by program 调用API函数 习惯工作于DOS汇编的程序员同志都有一个愿望:如果说,能够以功能名称作为子程序名直接调用,他们 ...
- 8086汇编语言指令总结
根据工作需要,从基础学起,设计一台嵌入式CISC模型计算机,稍后上传. 先总结下,汇编语言指令,如下 1. MOV(传送) 指令写法:MOV target,source 功能描述:将源操作数sour ...
- c51单片机跑马灯汇编语言,单片机跑马灯汇编程序 单片机汇编程序编写技巧
[摘 要]在用汇编语言编写单片机程序时,由于编程方法或者选用指令的不同,会造成实现相同功能的程序,执行时间的长短和程序占用内存空间的大小都不相同,占用内存空间少.执行时间短是编写汇编程序最基本的原则. ...
- 汇编语言——基础知识
目标 1.了解机器语言.汇编语言.汇编源程序.汇编程序.汇编.宏汇编程序等基本概念,正确认识学习汇编语言的重要性. 2.掌握8086处理器中各寄存器的符号表示形式.大小及主要用途. 3.理解主存的编址 ...
- 王爽汇编语言C硬盘读写,王爽汇编语言学习笔记(范文).doc
本科毕业设计(论文)外文资料翻译 第 PAGE \* Arabic 1 页第 PAGE \* Arabic 1 页 第一章 基础知识 ◎汇编语言由3类指令组成 汇编指令:机器码的助记符,有对应机器码. ...
最新文章
- Kali2021.2 VMware最新版安装步骤
- AI工程师面试知识点:TensorFlow 框架
- if语句输入月份判断季节_C语言循环及条件语句
- 利用微信登录掘金网站的HTTP请求分析
- Java中继承thread类与实现Runnable接口的区别
- stm32按键矩阵代码_STM32 学习笔记---1
- jeesite缓存问题
- 转使用jQuery Ajax的内存回收
- 【广搜】Keyboarding
- java 操作属性值_java反射机制根据属性名获取属性值的操作
- 基于JAVA+SpringBoot+Mybatis+MYSQL的个人理财系统
- 阶段3 3.SpringMVC·_02.参数绑定及自定义类型转换_3 配置解决中文乱码的过滤器
- live2d手机制作软件_Live2d( 动画制作软件 )中文版分享
- 软件测试项目案例.pdf,【精选】最经典软件测试案例.pdf
- 什么是AWS认证,有什么用?
- 如何不授权情况下获取自己微信openid/傻瓜式获取
- 苹果手机需要清理垃圾吗?
- setex php,python redis setex可以设value为list或者其他数据结构吗?
- excel 分组计数
- 循序渐进实现仿QQ界面(三):界面调色与控件自绘