linux将汇编转为机器码,汇编语言 高级语言 机器语言 本地代码

不管是什么语言,最终都会转化为机器语言(本地代码)(机器码),计算机程序的运行最终仍是以机器语言(本地代码)(机器码)运行的。java

汇编语言:linux

汇编语言是低级编程语言,不像高级语言有跨平台性,首先,CPU的的工做是靠机器语言(本地代码)(就是指令集,ISA),而这些指令有些是cpu独占的,而有些是必需要被外界访问的,好比让cpu作加法运算,谁加谁是cpu没法决定的,就必须经过外界指定才能够运算。因而问题出现了,用机器码控制cpu太难了,只有0和1,编程人员要费很大劲!因而汇编语言应邀而生。它是文字形式的,程序员写完程序后经过汇编器(相似于高级语言的编译器)将文字转化为机器码,因而程序就能够控制cpu了,所以汇编语言很依赖cpu,i386的汇编程序只能运行在支持i386体系的cpu上,苹果PowerPC汇编程序只能运行在苹果机上。这也就是为何Windows程序不能运行在苹果机上,就是一位互相的汇编指令集不一样,从而机器码不一样。程序员

机器语言、汇编语言不只跟cpu有关系,并且和系统也有关系。编程

C、C++、C#、java等语言都是高级编程语言。windows

C语言是跨平台的,不过是“源码级”跨平台。原本就是存在针对linux、windows的不一样的编译器。C语言在window编译成的机器语言,是没法在linux系统运行的,由于机器语言和系统、cpu有关系,须要在linux系统用相应的编译器从新编译,才能在linux系统上运行,而java主要是依赖于jvm虚拟机,编译后,不一样的系统都有对应的jvm虚拟机,就能够直接运行,因此有C语言“一次编写,处处编译”,Java是“一次编译,处处运行”的说法。jvm

可是jvm虚拟机是一边把java字节码逐一转换为本地代码一边运行的,存在着运行速度的问题,jvm虚拟机每次运行时都要把字节码变换为机器语言,这一机制是形成运行速度慢的缘由,为此,目前业界也在努力改善这一问题,好比把首次变换后的本地代码保存起来,第2次之后直接利用本地代码,或是对字节码中处理较为费时的部分进行优化()改善生成的本地代码质量)等。这样的操做方法看上去有些迂回,但由此能够实现一样的字节码在不一样的环境下直接运行。编程语言

如C++创始人酸溜溜的说法,JVM造了一个新的平台,让全部Java程序只能在这个平台上运行,而C和C++的代码能够在几十个不一样的平台上运行,从这个角度而言,C和C++是跨平台的,而Java不是优化

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值