机器码、指令、汇编语言
一 机器码
各种用二进制编码方式表示的指令,叫做机器指令码。开始,人们就用它编写程序,这就是机器语言。
机器语言虽然能够被计算机理解和接受,但和人们的语言差别太大,不易被人们理解和记忆,并且用它编程容易出差错。
用它编写的程序一经输入计算机,CPU 直接读取运行,因此和其他语言编的程序相比,执行速度最快。
机器指令与 CPU 紧密相关,所以不同种类的 CPU 所对应的机器指令也就不同。
二 指令
由于机器码是由0和1组成的二进制序列,可读性实在太差,于是人们发明了指令。
指令就是把机器码中特定的0和1序列,简化成对应的指令(一般为英文简写,如mov,inc等),可读性稍好。
由于不同的硬件平台,执行同一个操作,对应的机器码可能不同,所以不同的硬件平台的同一种指令(比如mov),对应的机器码也可能不同。
三 指令集
不同的硬件平台,各自支持的指令,是有差别的。因此每个平台所支持的指令,称之为对应平台的指令集。
如常见的
x86 指令集:对应的是 x86 架构的平台
ARM指令集:对应的是 ARM 架构的平台
四 汇编语言
由于指令的可读性还是太差,于是人们又发明了汇编语言。
在汇编语言中,用助记符(Mnemonics)代替机器指令的操作码,用地址符号(Symbo1)或标号(Labe1)代替指令或操作数的地址。在不同的硬件平台,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。
由于计算机只认识指令码,所以用汇编语言编写的程序还必须翻译成机器指令码,计算机才能识别和执行。
五 高级语言
为了使计算机用户编程序更容易些,后来就出现了各种高级计算机语言。
高级语言比机器语言、汇编语言更接近人的语言。当计算机执行高级语言编写的程序时,仍然需要把程序解释和编译成机器的指令码。完成这个过程的程序就叫做解释程序或编译程序。
高级语言也不是直接翻译成 机器指令,而是翻译成汇编语言吗,如下面说的C和C++
六 C、C++源程序执行过程
编译过程又可以分成两个阶段:编译和汇编。
编译过程:是读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码。
汇编过程:实际上指把汇编语言代码翻译成目标机器指令的过程。
七 字节码
字节码是一种中间状态(中间码)的二进制代码(文件),它比机器码更抽象,需要编译器转译后才能成为机器码。
字节码主要为了实现特定软件运行和软件环境、与硬件环境无关。
字节码的实现方式是通过编译器和虚拟机器。编译器将源码编译成字节码,特定平台上的虚拟机器将字节码转译为可以直接执行的指令。
字节码典型的应用为:Java bytecode
机器码、指令、汇编语言相关推荐
- 汇编指令对应的机器码_汇编语言输出“welcome to you!”
基础知识 汇编语言指令组成 汇编指令:机器码的助记符,有对应的机器码. 伪指令:没有对应的机器码,编译器执行,机器不执行. 其他符号:如+-*/有编译器识别,无对应机器码. CPU与外部器件交互需要 ...
- 机器码,汇编语言,C语言,C++发展的认识
计算机是实现计算目的机器.计算?有数值计算(比如1+1等于2),图形计算(比如现在的人脸识别,图像处理),娱乐计算(各种游戏伤害数值的计算,各种精美画面在屏幕上的展示),行星运行轨迹的计算.(个人感觉 ...
- LOOP指令——汇编语言学习笔记3
因为嵌入式系统学习需要,开始学习汇编语言 学习资料是B站的视频:汇编语言程序设计 贺利坚主讲 (P25) 这里写目录标题 一.LOOP功能与格式 二.LOOP指令实例 三.LOOP指令执行的要求 四. ...
- 第 12 章 执行引擎
第 12 章 执行引擎 1.执行引擎概述 执行引擎位置 执行引擎属于JVM的下层,里面包括:解释器.即时编译器.垃圾回收器 1.1.执行引擎概述 执行引擎概述 执行引擎是Java虚拟机核心的组成部分之 ...
- 第 11 章 一 执行引擎概述、解释器、JIT编译器-热点代码优化
第 11 章 执行引擎 Java到底是编译型语言还是解释型语言? 编译程序基本原理 首先Java通过源码编译器 Javac命令将源代码编译为字节码文件(.class文件), 字节码这种二进制流的文件不 ...
- JVM学习笔记汇总:结合尚硅谷宋红康老师视频教程及PPT
JVM学习笔记汇总:结合尚硅谷宋红康老师视频教程及PPT 第一章:JVM虚拟机的介绍 1.1虚拟机的分类 虚拟机通常分为两类:系统虚拟机和程序虚机.其中,系统虚拟机是指完全对物理计算机的仿真,而程序虚 ...
- 王爽老师汇编语言第四版第十章CALL和RET指令——小白笔记
目录 10.1 ret和retf (1) ret: (2)retf: 10.2 call指令 10.3依据位移进行转移的CALL指令 10.4 转移的目的地址在指令中的CALL指令 10.5转移地址 ...
- 王爽著的《汇编语言》第3版笔记
王爽著的<汇编语言>(第3版)于2013年出版,虽然是2013年出版的,但书中部分内容感觉已过时: (1). 基于intel 8086 CPU介绍,intel 8086是英特尔公司上个世纪 ...
- 汇编语言介绍,内存和总线的初步认识
1.机器语言和汇编语言 机器语言是机器指令的集合.机器指令展开来说就是一个可以正确执行的命令,电子计算机的机器指令是一列二进制数字,计算机将之转变为一列高低电平,以使计算机的电子器件受到驱动,进行计算 ...
- ARM 汇编语言入门
[翻译]二进制漏洞利用(二)ARM32位汇编下的TCP Bind shell:https://bbs.pediy.com/thread-253511.htm ARM汇编语言入门 From:ARM汇编语 ...
最新文章
- c 性能好于java,吐槽一下java的效率。。。比起C差的真的好远。。。
- Win7无线网络共享设置方法
- PHP中的mb_convert_encoding与iconv函数介绍
- 作者:周涛,男,电子科技大学教授。
- 【Kafka】Kafka客户端分配方案
- Bailian3721 和数【标记】
- Chrome 开发工具之 Memory
- 变形金刚图纸_变形金刚救援
- 基于单片机的电子秤系统设计(电路+流程)
- Mock-- Server的使用
- Windows10如何在文件夹打开DOS命令窗口
- Python用户画像词云图生成并集成到django网站
- Vue 自定义移动端的 滑动事件
- 一枚namecheap续费可用的优惠码
- 千兆网线交叉线接法(有图)
- Stm32中英文手册官网免费
- SSL/TLS - 什么是SSL?
- 【数据结构、字符串、C语言】统计字符串中不同字符出现的频度
- 实力赢得信任丨西安珠江新城业主喜迎公元物业
- vue中src路径的写法
热门文章
- Cordova 调用微信SDK,实现微信支付、微信分享、微信登录、打开微信小程序
- Python图像处理库PIL中的convert函数的用法
- lepad k1 android 4,软硬齐升级 安卓3.1版联想乐Pad K1评测(7)
- 电子时钟制作(瑞萨RA)(3)----使用J-Link烧写程序到瑞萨芯片
- 简单几步解决笔记本风扇一直嗡嗡响的问题
- LTE:Buffer Status Report(BSR)
- ite计算机考试答案,ITEFinal-Exam期末考试(中文)(答案突显版)
- 不用软件修复硬盘分区表
- php class 构造_PHP 构造一个 ReflectionClass 类
- java获取公钥_使用java中的Bouncy Castle从CSR文件中获取公钥CSR