1. 一些术语

机器码:machine code == 机器指令:machine instruction == 指令instruction

汇编语言:assembly

汇编器:assembler

高级语言:high-level language

编译器:compiler

2. 编译器和汇编器的区别

机器码

机器码即一条条的指令,可以被CPU处理器所识别的语言,CPU可以执行对应的指令,实现相应的功能。

不论是编译器还是汇编器,最终生成的都是机器码。

汇编语言

汇编器产生机器码,指的是将汇编语言已编译成机器码。

汇编语言中的每一个命令,一般情况下,都对应着一个,可以被CPU所识别的,机器码中的,机器指令。

高级语言

编译器,将高级语言编译成机器码。

绝大多数的高级语言,比如C,C++,Java等,的命令,即高级语言写出来的语句,和机器语言都没有一一对应的关系,一般来说,一条高级语言的语句或几条语句所组成的代码段,都对应着(更多)多条机器码。

硬件抽象层

硬件抽象层是一种技术,将底层硬件细节抽象隐藏出来,以方便上层软件编程。

汇编语言中,一般不存在硬件抽象层的概念,因为其本身语句,就接近于硬件指令,是用来直接操作硬件的。

而被编译器所编译后的高级语言,会很大程度地涉及到硬件抽象层。

汇编器的优势和劣势

由于汇编语言本身和指令就基本是一一对应的关系,所以用汇编器将汇编代码编译所生成的可执行代码(指令)的效率,比高级语言被编译器最终编译生成的可执行代码的效率,要高很多。

所以,当程序的性能作为最重要的考量的时候,比如在图像处理方面,或者是硬件资源有限的情况下,倾向于用汇编语言,以实现代码运行更高效,占用资源更少的效果。

汇编语言的劣势是,不容易使用,难学,难用。

编译器的优势和劣势

在绝大多说情况下,在这点很小的性能的提升方面的优势,不足够补偿其在难学难用方面的劣势,此时,

往往使用高级语言,比如C,C++,Java等。高级语言,更容易使用,更容易用来描述更加复杂的上层逻辑等。

3. 总结

汇编器 vs 编译器汇编器编译器

输入文件汇编(源)代码高级语言(C/C++/Java/…的源)代码

输出文件机器码(指令)机器码(指令)

是否有代码优化功能一般没有(一般也不需要,因为只是涉及到将汇编代码直接转换/翻译为机器码)一般都包含代码优化(优化代码,以提高运行效率)

汇编语言 vs 高级语言汇编语言(不同CPU对应不同的自己的汇编语言和机器语言)高级语言(C/C++/Java/…)

学习和使用的难易度难相对容易

和机器指令的一一对应程度基本一一对应一条高级语言往往对应着多条机器指令

代码执行效率极高相对汇编来说较低

【参考资料】

java是汇编语言还是高级语言_【整理】编译器和汇编器的区别 + 汇编语言和高级语言的区别...相关推荐

  1. java中计算机基础知识_整理一些计算机基础知识!

    为了使不同计算机厂家生产的计算机能够相互通信,以便在更大的范围内建立计算机网络,国际标准化组织(ISO)在1978年提出了"开放系统互联参考模型",即著名的OSI/RM模型(Ope ...

  2. java悲观者不加事务_在spring中,使用事务和不用事务的区别

    各位高手大家好,我最近在学习Spring,自己也作了几个例子.但我在开发的过程中发现我使用事务和不使用事务效果都一样,我想问一下两者的区别,谢谢大家:第一种,不使用事务,Spring... 各位高手大 ...

  3. 蓝桥杯Java历年真题与答案_蓝桥杯大赛java历年真题及答案整理(闭关一个月呕心沥血整理出来的)...

    蓝桥杯大赛java历年真题及答案整理(闭关一个月呕心沥血整理出来的) 1蓝桥杯 java 历年真题及答案整理(闭关一个月,呕心沥血整理出来的)1. 算法是这样的,如果给定 N 个不同字符,将这 N 个 ...

  4. java课后习题及答案_《java基础入门》课后习题及答案.doc

    <java基础入门>课后习题及答案.doc <Java 基础入门>课后习题及答案博学谷--让 IT 教学更简单,让 IT 学习更有效<Java 基础入门> 课后习题 ...

  5. JAVA工程师面试题目大全_绝对值得看

    JAVA工程师面试题目大全 一.单选题 1.下列哪种说法是正确的( D) A)实例方法可直接调用超类的实例方法 B)实例方法可直接调用超类的类方法 C)实例方法可直接调用其他类的实例方法 D)实例方法 ...

  6. JAVA基础学习精简心得笔记整理

    JAVA基础学习精简心得笔记整理 配置java环境变量 Java的运行过程  基本数据类型 引用数据类型 逻辑运算符 数组 方法重载 封装 继承 多态 多态的作用 单例设计模式 接口interface ...

  7. futuretask java 并发请求_Java面试题整理一(侧重多线程并发)

    1..是否可以在static环境中访问非static变量? 答:static变量在Java中是属于类的,它在所有的实例中的值是一样的.当类被Java虚拟机载入的时候,会对static变量进行初始化.如 ...

  8. java 面试题合集_撩课-Java面试题合辑1-50题

    1.简述JDK.JRE.JVM? 一.JDK JDK(Java Development Kit) 是整个JAVA的核心, 包括了Java运行环境(Java Runtime Envirnment), 一 ...

  9. JAVA编程习题及答案_完美版

    JAVA编程习题及答案_完美版 原创 lingwu7 最后发布于2017-08-15 20:01:12 阅读数 10796 收藏 发布于2017-08-15 20:01:12 版权声明:本文为博主原创 ...

最新文章

  1. 假如我是超级卷王......
  2. 人工智能深度学习Caffe框架介绍,优秀的深度学习架构
  3. CentOS7安装bind域名服务
  4. oracle emp数据库或数据误删恢复
  5. linux刷windows要重新校色吗,ThinkPad T470s 在 openSUSE KDE 桌面环境中安装显示器校色文件...
  6. 【转】azure认证路线以及学习资源
  7. 送给计算机老师的话,送给老师的话
  8. html a标签有value,html里面a标签里有value吗?
  9. linux权限bcd码是6,Linux权限管理(1)基本权限
  10. CPU acceleration status:HAXM must be updated(version 1.1.16.0.1)
  11. LEACH协议网络性能分析
  12. 《大学之路》读书笔记(上)范文3700字
  13. 外包公司是做什么的?
  14. 数字化转型之道:谈谈企业如何落地数据治理
  15. 常见安全漏洞及其解决方案
  16. 电脑截屏有哪些常用的快捷键
  17. Spring之Specification复杂查询和Criteria查询
  18. 【我是一只It小小鸟】有感
  19. 2022年乡村医生考试复习题及答案
  20. 基于R语言的主成分和因子分析

热门文章

  1. RS485单灯控器通信协议
  2. HTML5图片处理(请使用谷歌浏览器)
  3. 如何选择电机驱动器IC?
  4. 正则表达式:合法的URL
  5. python识图 web_Python图片识别——人工智能篇
  6. C语言7-3 一帮一 15 分,培优辅差记录
  7. 英文思维-翻译式中文思维-“地道”中文思维
  8. Flink教程(13) Keyed State状态管理之ValueState的使用 温差报警
  9. h3c交换机限制端口访问_h3c交换机设置限制公司员工访问外网
  10. Java ArrayList 某中学有若干学生,每个学生有一个姓名属性、班级名称属性和考试成绩属性