计算机组成指令系统汇编语言课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《计算机组成指令系统汇编语言课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组成 指令系统 汇编语言 课件
- 资源描述:
-
1、计算机组成原理计算机组成原理第第5章章 指令、指令系统和汇编语言程序设计指令、指令系统和汇编语言程序设计2 指令:指令:是计算机运行的最小的功能单元,是指挥是计算机运行的最小的功能单元,是指挥计算机硬件运行的命令,是由二进制位组成的位串,是计算机硬件运行的命令,是由二进制位组成的位串,是计算机硬件可以直接识别和执行的一个信息体。指令用计算机硬件可以直接识别和执行的一个信息体。指令用于程序设计人员告知计算机执行一个最基本运算、处理于程序设计人员告知计算机执行一个最基本运算、处理功能。功能。指令系统:指令系统:一台计算机提供的全部指令构成该计算一台计算机提供的全部指令构成该计算机的机的指令系统指令
2、系统。多条指令可以组成一个程序,完成一项。多条指令可以组成一个程序,完成一项预期的任务。预期的任务。5.1 指令系统概述指令系统概述 3汇编语言层汇编语言层操作系统层操作系统层指令系统层指令系统层微体系结构层微体系结构层数字逻辑层数字逻辑层高级语言层高级语言层应用层 计算机系统的层次结构计算机系统的层次结构 指令系统层指令系统层处在硬件系统和软件处在硬件系统和软件系统之间,是硬、软件之间的接口系统之间,是硬、软件之间的接口部分。部分。硬件系统硬件系统负责用于实现每条指令负责用于实现每条指令的功能,解决指令之间的连接关系;的功能,解决指令之间的连接关系;软件软件由按一定规则组织起来的许由按一定规
3、则组织起来的许多条指令组成,完成一定的数据运多条指令组成,完成一定的数据运算或者事务处理功能。算或者事务处理功能。指令系统优劣是一个计算机指令系统优劣是一个计算机系统是否成功的关键因素,同系统是否成功的关键因素,同时也是设计一台计算机的起点时也是设计一台计算机的起点和基本依据。和基本依据。微体系结构层微体系结构层软软 件件 系系 统统硬硬 件件 系系 统统回顾:指令系统在计算机中的地位回顾:指令系统在计算机中的地位4 设计指令系统的四点要求:设计指令系统的四点要求:完备性完备性:指令齐全指令齐全,编程方便。编程方便。规整性规整性:指令和数据的使用规则统一简单,易学易记指令和数据的使用规则统一简
4、单,易学易记高效性高效性:占内存少占内存少,运行省时。运行省时。兼容性兼容性:同一系列机软件兼容同一系列机软件兼容对设计指令系统的要求对设计指令系统的要求 对指令系统的要求很严格,既要支持程序设计人对指令系统的要求很严格,既要支持程序设计人员员用它设计各种程序用它设计各种程序,越简单、方便越好越简单、方便越好(相同算法实现相同算法实现所需的指令少所需的指令少),又要容易在计算机中,又要容易在计算机中用硬件实现这些用硬件实现这些指令的处理功能指令的处理功能,越节省、高效越好越节省、高效越好,但这两个方面,但这两个方面的要求经常是有矛盾的。的要求经常是有矛盾的。53 个层次的程序设计语言个层次的程
5、序设计语言 机器语言机器语言是计算机是计算机硬件能直接识别和运行的指令硬件能直接识别和运行的指令的集合的集合,是二进制码组成的指令,用机器语言设计程序是二进制码组成的指令,用机器语言设计程序基本不可行基本不可行。汇编语言汇编语言是对计算机机器语言进行符号化处理的结果是对计算机机器语言进行符号化处理的结果,再再增加一些为方便程序设计而实现的扩展功能。依赖编译器但效增加一些为方便程序设计而实现的扩展功能。依赖编译器但效率很高。率很高。高级语言高级语言又称算法语言,它的实现思路,不再是过分地又称算法语言,它的实现思路,不再是过分地“靠拢靠拢”计算机硬件的指令系统,而是着重面向解决实际问题计算机硬件的
6、指令系统,而是着重面向解决实际问题所用的算法,瞄准的是如何使程序设计人员能够方便地写出处所用的算法,瞄准的是如何使程序设计人员能够方便地写出处理问题和解题过程的程序,力争使程序设计工作的效率更高。理问题和解题过程的程序,力争使程序设计工作的效率更高。对编译器的效率要求很高。对编译器的效率要求很高。6确定指令系统的两种思路确定指令系统的两种思路 从降低硬件系统构成的复杂程度、提高指令执行的速度和并行性考虑,从降低硬件系统构成的复杂程度、提高指令执行的速度和并行性考虑,确定指令系统时有两种思路:确定指令系统时有两种思路:CISC(Complex Instruction Set Computer)(
7、)(intel x86)通常称为复杂指令系统的计算机。其核心思想是:为了提高效率通常称为复杂指令系统的计算机。其核心思想是:为了提高效率,让硬件做让硬件做更多的事情。更多的事情。其特点是:其特点是:指令条数多指令条数多,格式多样格式多样,寻址方式复杂寻址方式复杂,每条,每条指令的功能强指令的功能强,优点是汇编程序设计容易些,但计算机控制器的优点是汇编程序设计容易些,但计算机控制器的实现困难多(实现困难多(Intel 4G 处理器的处理器的流产流产/Power PC),很多指令被使用的机会比较少。,很多指令被使用的机会比较少。指令并行度差指令并行度差。RISC(Reduced Instructi
8、on Set Computer)(MIPS/POWER PC)通常称为精简指令系统的计算机。通常称为精简指令系统的计算机。约翰约翰.科克科克(John Cocke)(John Cocke)提出了著名的提出了著名的“20%-80%20%-80%定律定律”(即只有即只有20%20%简单的指令是经常使用的简单的指令是经常使用的,而其余而其余80%80%的复杂指令却的复杂指令却很少使用很少使用),),这是这是RISCRISC技术的设计基础。技术的设计基础。其核心思想是:让软件做更多的事情,提其核心思想是:让软件做更多的事情,提高简单指令的执行效率。(高简单指令的执行效率。(Alpha 处理器)处理器)
9、提供提供数目较少数目较少、格式与功能简单格式与功能简单、运行高效运行高效的指令,追求的是计算机控制的指令,追求的是计算机控制器实现简单,运行高速,更容易在单块超大规模集成电路的芯片内制做出来。器实现简单,运行高速,更容易在单块超大规模集成电路的芯片内制做出来。指指令并行性好(多发射技术)令并行性好(多发射技术)。融合趋势融合趋势:CISC和和RISC融合的趋势融合的趋势7CISC指令和指令和RISC指令举例指令举例CISC架构乘法指令:MUL ADDRA,ADDRB 可以将内存地址为ADDRA和ADDRB中的数相乘并将结果储存在ADDRA中。它完成的操作首先将ADDRA,ADDRB中的数据读入
10、寄存器,相乘和将结果写回内存的操作全部依赖于CPU中设计的逻辑来实现。这种架构会增加CPU结构的复杂性和对CPU工艺的要求,但对于编译器的开发十分有利。比如上面的例子,C程序中的a*=b就可以直接编译为一条乘法指令。RISC架构只支持简单寄存器乘法指令MUL A,B。RISC上实现相同的功能:MOV A,ADDRA;MOV B,ADDRB;MUL A,B;STR ADDRA,A。共需要4条指令。这种架构可以降低CPU的复杂性以及允许在同样的工艺水平下生产出功能更强大的CPU,但对于编译器的设计有更高的要求。8指令格式指令格式-指令表示指令表示指令字指令字:代表指令的一组二进制代码信息;:代表指
11、令的一组二进制代码信息;指令字长指令字长:指令字中二进制代码的位数。:指令字中二进制代码的位数。位数越多,所能表示的操作信息和地址信息也位数越多,所能表示的操作信息和地址信息也就越多,使指令功能丰富。但会占用存储空间多,就越多,使指令功能丰富。但会占用存储空间多,读取指令的时间可能增加。读取指令的时间可能增加。指令基本格式:一般由操作码和操作对象两部分组指令基本格式:一般由操作码和操作对象两部分组成成 操作对象指一个或多个地址码。操作对象指一个或多个地址码。OP A 0 A 1 9指令表示指令表示操作码:操作码:用来指明该指令所要完成的操作,如加法、用来指明该指令所要完成的操作,如加法、减法、
12、传送、移位、转移等等。减法、传送、移位、转移等等。位数反映了机器的操作种类,也即机器允许的指位数反映了机器的操作种类,也即机器允许的指令条数,如果操作码有令条数,如果操作码有n位二进制数位二进制数,则最多可表示则最多可表示2n种指令。种指令。地址码:地址码:用来寻找运算所需要的操作数(源操作数用来寻找运算所需要的操作数(源操作数和目的操作数)。和目的操作数)。地址码包括:源操作数地址、目的操作数地址和地址码包括:源操作数地址、目的操作数地址和下一条指令的地址。下一条指令的地址。地址含义:主存的地址、寄存器地址或者地址含义:主存的地址、寄存器地址或者I/O设备设备地址。地址。10指令字长与机器字
13、长的关系指令字长与机器字长的关系 机器字长机器字长是指计算机能直接处理的二进制数据的位是指计算机能直接处理的二进制数据的位数,它与计算机的功能和用途有很大的关系,是计算数,它与计算机的功能和用途有很大的关系,是计算机的一个重要技术指标。首先,字长决定了计算机的机的一个重要技术指标。首先,字长决定了计算机的运算精度,字长越长计算机的运算精度越高,因此高运算精度,字长越长计算机的运算精度越高,因此高性能的计算机字长较长。性能的计算机字长较长。指令的长度与机器的字长没有固定的关系,它既可以指令的长度与机器的字长没有固定的关系,它既可以小于或等于机器的字长小于或等于机器的字长,也可以大于机器的字长也可
14、以大于机器的字长(增加增加取指时间取指时间)。前者称为短格式指令,后者称为长格式。前者称为短格式指令,后者称为长格式指令。一条指令存放在地址连续的存储单元中。同一指令。一条指令存放在地址连续的存储单元中。同一台计算机中可能既有短格式指令又有长格式指令,但台计算机中可能既有短格式指令又有长格式指令,但通常是把最常用的指令(如算术逻辑运算指令、数据通常是把最常用的指令(如算术逻辑运算指令、数据传送指令)设计成短格式指令,以便节省存储空间和传送指令)设计成短格式指令,以便节省存储空间和提高指令的执行速度。提高指令的执行速度。11 指令的长度主要取决于操作码的长度、操作数地址的指令的长度主要取决于操作
15、码的长度、操作数地址的长度和操作数地址的个数。由于操作码的长度、操作数长度和操作数地址的个数。由于操作码的长度、操作数地址的长度及指令格式不同,各指令的长度不是固定的,地址的长度及指令格式不同,各指令的长度不是固定的,指令的长度通常为字节的整数倍。指令的长度通常为字节的整数倍。地址码长度决定了指令直接寻址能力,若为地址码长度决定了指令直接寻址能力,若为n位,则给位,则给出的出的n位直接地址寻址位直接地址寻址2n字节。这对于字长较短(字节。这对于字长较短(8位或位或16位)的微型机来说远远满足不了实际需要,扩大寻址位)的微型机来说远远满足不了实际需要,扩大寻址能力的方法,一是通过增加机器字长来增
16、加地址码的长能力的方法,一是通过增加机器字长来增加地址码的长度;二是采用地址扩展技术,把存储空间分成若干个段,度;二是采用地址扩展技术,把存储空间分成若干个段,用基地址加位移量的方法来增加地址码的长度。用基地址加位移量的方法来增加地址码的长度。在在Pentium系列机中,指令格式也是可变的:由系列机中,指令格式也是可变的:由8位、位、16位、位、32位、位、64位不等。位不等。125.1.1 操作码组织与编码操作码组织与编码定长的操作码的组织方案定长的操作码的组织方案 在指令字最高位部分分配固定若干位用于表示操作码。在指令字最高位部分分配固定若干位用于表示操作码。这种格式便于硬件设计,指令译码
17、时间短,广泛应用于字这种格式便于硬件设计,指令译码时间短,广泛应用于字长较长的、大中型计算机和超级小型计算机以及长较长的、大中型计算机和超级小型计算机以及RISC(Reduced Instruction Set Computer)中。如)中。如IBM370和和VAX-11系列机,操作码长度均为系列机,操作码长度均为8位。位。变长的操作码的组织方案变长的操作码的组织方案(扩展操作码扩展操作码)不同的指令操作码的位数可以变化,称可变长操作码。不同的指令操作码的位数可以变化,称可变长操作码。使用频度高的指令,采用较短的操作码,使用频度低的指使用频度高的指令,采用较短的操作码,使用频度低的指令,采用较
18、长的操作码,使得指令系统的操作码平均长度得到令,采用较长的操作码,使得指令系统的操作码平均长度得到压缩。压缩。由于这种格式可有效地压缩操作码的平均长度,在字长较由于这种格式可有效地压缩操作码的平均长度,在字长较短的微机中被广泛采用。如短的微机中被广泛采用。如PDP-11,Intel8086/80386等。等。13 假设某机器的指令长度为假设某机器的指令长度为16位,包括位,包括 4位基本操位基本操作码和三个作码和三个 4位地址码段。位地址码段。15 12 118 7 4 30 OP A1 A2 A3 4 位基本操作码可表示位基本操作码可表示 16个状态,个状态,如用如用 4 位操作码,则能表示
19、位操作码,则能表示 16 条条三地址三地址指令,指令,若用若用 8 位操作码,则可表示位操作码,则可表示 256 条条二地址二地址指令,指令,而用而用12位操作码,则可表示位操作码,则可表示 4096条条一地址一地址指令,指令,若若16位全用作操作码,则可表示位全用作操作码,则可表示 65536条条零地址零地址指令指令指令操作码的扩展技术指令操作码的扩展技术14操作码扩展:指令字长操作码扩展:指令字长1616位,可含有位,可含有3 3、2 2、1 1或或0 0个地址,每个地址占个地址,每个地址占4 4位。位。操作码操作码 地址码地址码 15 12 11 8 7 4 3 00000 0000 X
20、 X Y Y Z Z 1110 1110 X X Y Y Z Z.11111111 0000 0000 Y ZY Z 1111 1111 1110 1110 Y ZY Z.三地址指令三地址指令 1515条条二地址指令二地址指令 1515条条11111111 11111111 0000 0000 Z Z 1111 11111111 1111 1110 1110 Z Z.一地址指令一地址指令 1515条条11111111 11111111 11111111 0000 0000 1111 11111111 1111 11111111 1111 1111.零地址指令零地址指令 1616条条15 前面介
21、绍的操作码扩展方案中,每次扩展前面介绍的操作码扩展方案中,每次扩展4位并位并仅保留了仅保留了一个编码一个编码用于接下来的扩展过程,当每次扩用于接下来的扩展过程,当每次扩展的位数和保留的位数变化时,后面可扩展的指令条展的位数和保留的位数变化时,后面可扩展的指令条数就可以变化。例如在数就可以变化。例如在16位字中的指令字中,可以选位字中的指令字中,可以选用如下方案支持三地址指令、二地址指令、一地址指用如下方案支持三地址指令、二地址指令、一地址指令和零地址指令令和零地址指令14、30、31、16条:条:16条零地址为:条零地址为:11111111111100001111111111111111 14
22、条三地址为:条三地址为:0000 1101(保留保留1110、1111 两个码两个码)30条二地址为:条二地址为:11100000 11111101(保留(保留 2个码)个码)31条一地址为:条一地址为:111111100000 111111111110 (保留保留 1个码个码)指令操作码的扩展技术指令操作码的扩展技术165.1.2 操作数个数操作数个数(1)三地址指令:)三地址指令:(A1)OP(A2)A3OPA1A2A3(2)二地址指令:)二地址指令:(A1)OP(A2)A1A1:目的操作数:目的操作数A2:源操作数:源操作数(3)单地址指令:)单地址指令:(ACC)OP(A)ACCOP(
23、A)A单目操作:如单目操作:如NEG、INC等指令等指令OPA1A2OPA175.1.2 操作数个数操作数个数(4)零地址指令)零地址指令不涉及操作数:如不涉及操作数:如NOP、HLT指令指令操作数隐含:如操作数隐含:如PUSH、POP指令指令对于寄存器类型的操作数,地址对于寄存器类型的操作数,地址A指寄存器编号。指寄存器编号。OP18指令操作数来源和去向指令操作数来源和去向1 1、CPUCPU内部的通用寄存器:内部的通用寄存器:操作数存放在操作数存放在CPU的通用寄的通用寄存器中,地址码存器中,地址码A为寄存器号。为寄存器号。2 2、输入输出设备(接口)的一个寄存器。、输入输出设备(接口)的
24、一个寄存器。操作数存放在操作数存放在外设中,地址码外设中,地址码A为其地址信息。(为其地址信息。(IO统一编址统一编址:MIPS IO单独编址:单独编址:x86)3 3、主存储器的一个存储单元。、主存储器的一个存储单元。操作数存放在主存中,地操作数存放在主存中,地址码址码A为其地址信息为其地址信息4 4、立即数。、立即数。操作数直接存放在指令中操作数直接存放在指令中5.1.2 指令操作数来源和去向19例:例:X、Y、Z是存放三个操作数的存储单元地址。分别用三地是存放三个操作数的存储单元地址。分别用三地址、二地址、一地址结构的指令实现址、二地址、一地址结构的指令实现(X)+(Y)-Z 的程的程序
25、段,并分析比较,序段,并分析比较,见下图:见下图:指令格式指令格式 程序程序 特点特点一地址结构一地址结构ADD X,Y,Z只需一条指令,但指令长只需一条指令,但指令长度较长度较长二地址结构二地址结构MOV Z,YADD Z,X需两条指令,但指令长度需两条指令,但指令长度变短变短三地址结构三地址结构LOAD XADD YSTORE Z需三条指令,指令长度最需三条指令,指令长度最短短20操作数类型与数据存储方式操作数类型与数据存储方式(1)操作数类型操作数类型地址地址数字数字字符字符逻辑数逻辑数无符号整数无符号整数定点数、浮点数、二定点数、浮点数、二_十进制数十进制数ASCII逻辑运算,逻辑运算
展开阅读全文