计算机文化中文版第13版,1.4.1 程序和指令集

数字设备怎样处理数据?计算机和专门的手持设备都能在计算机程序的控制下处理数字数据。下面将详细介绍程序的编写,以及数字设备与程序的协同工作。

谁来编写程序?控制数字设备的程序是计算机程序员编写的。这些程序通常是用高级编程语言编写的,这些语言包括C、BASIC、COBOL或Java等。

编程语言使用命令字(如Print、If、Write、Display以及Get)的有限集来形成程序语句,这些语句可用来指挥处理器芯片按部就班地执行指令。多数编程语言的一个重要特性是它们能用简单的工具(如文字处理软件)进行编写,而且它们很容易被程序员理解。选择iPod中的歌曲的简单程序可以包括如图1-18所示的语句。

a120a36ba5618273ef77c651adda6a57.png

便于人们理解的程序(如上例所示)是由程序员使用高级语言编写的,这种程序叫做源代码。但一如数字设备不能直接处理未经数字化的文本、声音或图像,处理器不能使用没有转换成数字格式的源代码。

怎样转换源代码?将源代码转换成0和1的序列的操作可以由编译器或解释器来执行。编译器能一次性转换一个程序中的所有语句,并将生成的指令集合(叫做目标代码)存放在新文件中(如图1-19所示)。多数以软件的形式分发的程序文件都包含了可供处理器执行的目标代码。

638e474ac8b54ffd1fa1bd3f09dc8f25.png

编译器和解释器并不是简单地将源代码中的字符直接转换成0和1的序列。例如,在iPod程序的第一行中有语句“Display Playlist”,不过编译器并不会简单地将字母“D”转换成相应的ASCII码。其实计算机还是比较精明的。

转换过程会产生什么?微处理器是硬布线式的,只能做有限的事情,例如,加法、减法、计数和比较。这些预编程序的活动的集合叫做指令集。指令集不是用来执行特定任务(如文字处理或音乐播放)的,它是通用的,因此,程序员可以创造性地使用指令集,从而编制各种数字设备都能使用的完成多种任务的程序。

每一条指令都拥有与之对应的0和1的序列。例如,00000100可能对应“加”指令。机器语言是指微处理器指令集的编码列表,它能由处理器的电路直接执行。而程序所使用的一系列机器语言指令叫做机器代码。

机器代码指令包括两部分:操作码和操作数。操作码(op code,operation code的简称)是指代表操作(如加、比较或跳转)的命令字。而指令的操作数指定了需要操作的数据或数据的地址。在下面所示的指令中,操作码表示“加”,而操作数是“1”,所以这条指令的意思是“加1”。

1dea558101bf69d8bae5161d7690fa2d.png

单条高级指令经常要转换成多条机器语言指令。图1-21展示了与一个简单高级程序对应的机器语言指令的数目。

d2903fc4858fabf868b1ac86e0f2a2e0.png

总结一下我们现在对程序和指令集应有的了解,就是程序员会使用编程语言编写人们能读懂的源代码,然后编译器或解释器将源代码转换成机器代码,机器代码指令则是对应处理器指令集的一系列的0和1。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值