汇编语言、机器语言 高级语言 字节码和机器码的区别

3,208 阅读2分钟

汇编语言VS机器语言


操作:寄存器BX的内容送到AX中
  
1000100111011000  机器指令
  
mov ax,bx         汇编指令 


高级语言

       高级语言又主要是相对于汇编语言而言的,它是较接近自然语言和数学公式的编程,基本脱离了机器的硬件系统,用人们更易理解的方式编写程序。编写的程序称之为源程序。 

     高级语言并不是特指的某一种具体的语言,而是包括很多编程语言,如流行的java,c,c++,C#,pascalpython,lisp,prolog,FoxPro,易语言,中文版的C语言等等,这些语言的语法、命令格式都不相同。 [2] 

重点是,高级语言是可移植的,做少量修改甚至无需修改,即可将代码运行在不同平台的计算机上。

字节码和机器码的区别

1,机器码:

       电脑CPU直接读取运行的机器码,运行速度最快,但是非常晦涩难懂,同时也比较难编写;机器码就是计算机可以直接执行,并且执行速度最快的代码;

用机器语言编写程序,编程人员要首先熟记所用计算机的全部指令代码和代码的涵义。手编程序时,程序员得自己处理每条指令和每一数据的存储分配和输入输出,还得记住编程过程中每步所使用的工作单元处在何种状态。这是一件十分繁琐的工作,编写程序花费的时间往往是实际运行时间的几十倍或几百倍。而且,编出的程序全是些0和1的指令代码,直观性差,还容易出错。现在,除了计算机生产厂家的专业人员外,绝大多数的程序员已经不再去学习机器语言了


2,字节码

      字节码是一种中间状态的(中间码)的二进制代码(文件),字节码(Bytecode)是一种包含执行程序、由一序列 op 代码/数据对 组成的二进制文件。需要直译器转译后才能成为机器码;字节码通常情况下它是已经经过编译,但与特定机器码无关。

     字节码通常不像源码一样可以让人阅读,而是编码后的数值常量,引用,指令等构成的序列。

      字节码与特定的硬件环境无关;字节码的实现方式是通过编译器和虚拟机器。编译器将源码编译成字节码,

      特定平台上的虚拟机器将字节码转译为可以直接执行的指令。字节码的典型应用为Java bytecode