MOV AL,061h

今天的电脑难以置信的快,越来越快的时候。然而,这个速度是一些重要的约束。电脑本身理解的一个非常有限的一组指令,必须对要做什么。这组指令,告诉计算机做什么是被称为软件。计算机机械执行指令的硬件。

计算机的CPU不能说C++。非常有限的指令集,一个CPU来理解称为机器码,或机器语言,或一个指令集。这些指令是组织已经超出了本介绍的范围,但要注意两件事情有趣。首先,每个指令由多个二进制数字,每一种只能是0或1。这些二进制数常被称为比特(二进制数字的简称)。例如,MIPS指令集都是32位长的指令。其他结构(如x86,你可能使用)有可能是一个可变长度指令。

例如,这里是一个x86的机器语言指令:10110000 01100001

第二,每一组二进制数转换成由CPU的指令,告诉它做一个非常具体的工作,如比较这两个数,或者把这个号码在存储位置。不同类型的处理器通常有不同的指令集,所以指令,将运行在一个奔腾4将无法运行在Macintosh PowerPC计算机。当计算机被发明以来,程序员必须直接用机器语言编写程序,这是一个非常困难和耗费时间的事情。

因为机器语言是如此的困难程序,汇编语言的发明。在汇编语言中,每个指令由一个短名称标识(而不是一套位),和变量可以通过名称而不是数字识别。这使得他们读和写很容易。然而,该CPU不能直接了解汇编语言。相反,它必须通过使用汇编程序翻译成机器语言。汇编语言往往是非常快的,和组装是今天仍然使用时,速度是关键。然而,汇编语言的原因是如此之快是因为汇编语言是针对一个特定的CPU。汇编程序的编写一个CPU将不能运行在另一个CPU。此外,汇编语言仍然需要大量的指令去做一些简单的任务,而不是非常可读的。

这里是相同的指令,在汇编语言:MOV AL,061h

为了解决这些问题,高层次的编程语言的发展。C,C++,Pascal,艾达,Java,JavaScript,Perl,都是高水平的语言。用高级语言编写的程序必须被翻译成的CPU可以了解之前,他们可以执行。有两种主要的方法是:编译和解释。

编译器是一种程序,读取代码和产生一个独立的可执行,CPU可以直接理解。一旦你的代码已经变成了一个可执行文件,你不需要编译运行程序。虽然它可以直观地似乎像高级语言会比汇编语言的效率明显降低,现代的编译器做一个转换成快速执行高级语言出色的工作。有时,他们甚至比人类编码器可以在汇编语言更好的工作!

这里是一个编译过程的简化表示法:

任何语言可以被编译或解释,然而,传统的语言如Pascal编写,而“脚本”语言如Perl和JavaScript解释。有些语言,如Java,混合使用两个。

高层次的语言有几个理想的性能。第一,高级语言的阅读和写作很容易。

这里是相同的指令为以上的C / C + +:= 97;

第二,它们需要较少的指令为较低级的语言,执行相同的任务。在C + +你可以像一个= b * 2 + 5;在一个线。在汇编语言中,这将需要5或6个不同的指令。

第三,你不需要关注细节如加载到CPU寄存器变量。编译程序或解释程序将为您处理所有这些细节。

第四,他们被移植到不同的架构,一个主要的例外,我们将讨论在一瞬间。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值