欢迎来到天天文库
浏览记录
ID:37459762
大小:1.51 MB
页数:75页
时间:2019-05-12
《计算机组成指令系统汇编语言》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、计算机组成原理第5章指令、指令系统和汇编语言程序设计2指令:是计算机运行的最小的功能单元,是指挥计算机硬件运行的命令,是由二进制位组成的位串,是计算机硬件可以直接识别和执行的一个信息体。指令用于程序设计人员告知计算机执行一个最基本运算、处理功能。指令系统:一台计算机提供的全部指令构成该计算机的指令系统。多条指令可以组成一个程序,完成一项预期的任务。5.1指令系统概述3汇编语言层操作系统层指令系统层微体系结构层数字逻辑层高级语言层应用层计算机系统的层次结构指令系统层处在硬件系统和软件系统之间,是硬、软件之间的接口部分。硬件系统负责用于实现每条指令的功能,解决指令之间的连接关系;软件由按一定
2、规则组织起来的许多条指令组成,完成一定的数据运算或者事务处理功能。指令系统优劣是一个计算机系统是否成功的关键因素,同时也是设计一台计算机的起点和基本依据。微体系结构层软件系统硬件系统回顾:指令系统在计算机中的地位4设计指令系统的四点要求:完备性:指令齐全,编程方便。规整性:指令和数据的使用规则统一简单,易学易记高效性:占内存少,运行省时。兼容性:同一系列机软件兼容对设计指令系统的要求对指令系统的要求很严格,既要支持程序设计人员用它设计各种程序,越简单、方便越好(相同算法实现所需的指令少),又要容易在计算机中用硬件实现这些指令的处理功能,越节省、高效越好,但这两个方面的要求经常是有矛盾的。
3、53个层次的程序设计语言机器语言是计算机硬件能直接识别和运行的指令的集合,是二进制码组成的指令,用机器语言设计程序基本不可行。汇编语言是对计算机机器语言进行符号化处理的结果,再增加一些为方便程序设计而实现的扩展功能。依赖编译器但效率很高。高级语言又称算法语言,它的实现思路,不再是过分地“靠拢”计算机硬件的指令系统,而是着重面向解决实际问题所用的算法,瞄准的是如何使程序设计人员能够方便地写出处理问题和解题过程的程序,力争使程序设计工作的效率更高。对编译器的效率要求很高。6确定指令系统的两种思路从降低硬件系统构成的复杂程度、提高指令执行的速度和并行性考虑,确定指令系统时有两种思路:CISC(
4、ComplexInstructionSetComputer)(intelx86)通常称为复杂指令系统的计算机。其核心思想是:为了提高效率,让硬件做更多的事情。其特点是:指令条数多,格式多样,寻址方式复杂,每条指令的功能强,优点是汇编程序设计容易些,但计算机控制器的实现困难多(Intel4G处理器的流产/PowerPC),很多指令被使用的机会比较少。指令并行度差。RISC(ReducedInstructionSetComputer)(MIPS/POWERPC)通常称为精简指令系统的计算机。约翰.科克(JohnCocke)提出了著名的“20%-80%定律”(即只有20%简单的指令是经常使用的
5、,而其余80%的复杂指令却很少使用),这是RISC技术的设计基础。其核心思想是:让软件做更多的事情,提高简单指令的执行效率。(Alpha处理器)提供数目较少、格式与功能简单、运行高效的指令,追求的是计算机控制器实现简单,运行高速,更容易在单块超大规模集成电路的芯片内制做出来。指令并行性好(多发射技术)。融合趋势:CISC和RISC融合的趋势7CISC指令和RISC指令举例CISC架构乘法指令:MULADDRA,ADDRB可以将内存地址为ADDRA和ADDRB中的数相乘并将结果储存在ADDRA中。它完成的操作首先将ADDRA,ADDRB中的数据读入寄存器,相乘和将结果写回内存的操作全部依赖
6、于CPU中设计的逻辑来实现。这种架构会增加CPU结构的复杂性和对CPU工艺的要求,但对于编译器的开发十分有利。比如上面的例子,C程序中的a*=b就可以直接编译为一条乘法指令。RISC架构只支持简单寄存器乘法指令MULA,B。RISC上实现相同的功能:MOVA,ADDRA;MOVB,ADDRB;MULA,B;STRADDRA,A。共需要4条指令。这种架构可以降低CPU的复杂性以及允许在同样的工艺水平下生产出功能更强大的CPU,但对于编译器的设计有更高的要求。8指令格式-指令表示指令字:代表指令的一组二进制代码信息;指令字长:指令字中二进制代码的位数。位数越多,所能表示的操作信息和地址信息也
7、就越多,使指令功能丰富。但会占用存储空间多,读取指令的时间可能增加。指令基本格式:一般由操作码和操作对象两部分组成操作对象指一个或多个地址码。OPA0A19指令表示操作码:用来指明该指令所要完成的操作,如加法、减法、传送、移位、转移等等。位数反映了机器的操作种类,也即机器允许的指令条数,如果操作码有n位二进制数,则最多可表示2n种指令。地址码:用来寻找运算所需要的操作数(源操作数和目的操作数)。地址码包括:源操作数地址、目的操作数地
此文档下载收益归作者所有