曹红根《计算机组成原理》第5章指令系统

上传人:san****019 文档编号:22847023 上传时间:2021-06-01 格式:PPT 页数:101 大小:402KB
收藏 版权申诉 举报 下载
曹红根《计算机组成原理》第5章指令系统_第1页
第1页 / 共101页
曹红根《计算机组成原理》第5章指令系统_第2页
第2页 / 共101页
曹红根《计算机组成原理》第5章指令系统_第3页
第3页 / 共101页
资源描述:

《曹红根《计算机组成原理》第5章指令系统》由会员分享,可在线阅读,更多相关《曹红根《计算机组成原理》第5章指令系统(101页珍藏版)》请在装配图网上搜索。

1、2021-6-1 1 2021-6-1 2 本章学习内容指令系统的设计方法指令格式寻址方式CISC和RISC的概念 2021-6-1 3 5.1 机器指令指令:控制计算机执行某种操作的命令。机器语言:计算机硬件实体直接表示控制信息的语言。机器语言程序:用机器语言编制的程序。 机器语言是计算机硬件能直接理解并执行的语言,任何用其它语言编制的程序,都必须经过 “翻译”,翻译为机器语言程序,才能在机器中正确的运行。 一条指令就是机器语言的一个语句,用来说明机器硬件应完成的操作。指令系统(指令集):一台计算机所能执行的全部指令的集合。 2021-6-1 4 机器语言是面向机器的:不同的计算机系统,具有

2、不同的指令,每一计算机系统都具有自己的指令系统。指令系统必须是完备的:即任何运算都可以用指令系统中的指令编程实现。 指令系统是计算机体系结构的核心;是计算机系统硬件、软件的主要界面。它既是计算机硬件设计的主要依据,又是计算机软件设计的基石。所以一台计算机指令系统的优劣,直接影响着计算机系统的性能。 2021-6-1 5 5.1.1 指令格式指令字(指令代码):表示一条指令的一串二进制代码。指令格式的设计内容: 确定的指令字长度 划分指令字字段并加以定义 2021-6-1 6 5.1.2 指令的组成与指令长度一条指令中应包含的信息: 操作码:表示指令的操作特性和功能。 操作数的地址:指示操作数或

3、操作数所在的地址。 存放操作结果的地址。 下一条指令的地址。指令的基本格式:操作码(OP)地址码(A) 2021-6-1 7 各字段的指定方法:显式指定:在指令字中明显地指定。隐含指定:由设计者用约定的方法指定。指令操作码均采用显式指定。下一条指令的地址多采用隐含指定。信息的存储结构不同,指定的地址也不一样,地址的结构也不同。 2021-6-1 8 指令长度指令字长度:一个指令字所包含的二进制信息的位数。定长指令:机器的指令系统中所有指令的长度都是一 样的。可变长指令:各指令的长度可以不同。字长与指令长通常等于字符长度的整倍数。为了合理地安排存储空间,并使指令能表达较丰富的内容,采用可变长指令

4、将更加灵活有效。 2021-6-1 9 单字长指令:指令长度等于机器字长。双字长指令:指令长度等于两个机器字长。另外还有更多倍字长的指令、半字长指令等。短指令占存储空间少,有利于提高指令执行速度,因此通常把最常用指令(如算术逻辑运算指令、数据传送指令等)设计成短指令格式。 2021-6-1 10 5.1.3 指令的地址结构CPU可直接访问的存储结构 主存储器:访存时要给出存储器单元地址 CPU寄存器:包括通用寄存器和专用寄存器。 I/O接口寄存器:包括数据寄存器和状态寄存 器。 堆栈 2021-6-1 11 指令的地址结构设计指令字的地址码格式时,需解决的主要问题包括: 一条指令中需要指明几个

5、地址; 应当如何给出地址; 地址码应选多长。 2021-6-1 12 1四地址指令A1:第一源操作数的存储器地址或寄存器地址;A2:第二源操作数的存储器地址或寄存器地址;A3:存放操作结果的存储器地址或寄存器地址;A4:指示下一条要执行指令的地址。指令的功能: (A1)OP(A2) A3;A4指示下条指令地址四地址指令直观明了,程序的执行流向明确,不存在转移指令。但指令长度太长,因此在实际机器中基本不用。OP A1 A2 A3 A4 2021-6-1 13 2三地址指令程序在执行过程中大多数情况是按指令序列依次执行的,只有在执行转移指令时,程序的执行顺序才被改变。为了压缩指令长度,下一条指令地

6、址采用隐含的方法给出。通常用一个程序计数器 PC 来跟踪程序的执行并指示将要执行的指令地址。每执行一条指令,PC自动增量,增量值取决于执行指令的长度。当程序出现转移时,用专门的转移指令将转移地址直接送入PC。在三地址指令中不明显地指示下条指令地址。 2021-6-1 14 三地址指令格式:A1:第一源操作数的存储器地址或寄存器地址;A2:第二源操作数的存储器地址或寄存器地址;A3:存放操作结果的存储器地址或寄存器地址;三地址指令功能为: (A1)OP(A2) A3; PC指示下条指令地址三地址指令编程方便,结果不影响运算操作数,但指令长度仍比较长,所以一般在字长较长的大、中型机中使用,而微、小

7、型机中很少使用三个地址均为存储器地址的三地址指令。OP A1 A2 A3 2021-6-1 15 3二地址指令二地址指令的格式为: 这里A1、A2是操作数所在的存储器地址或寄存器地址。二地址指令功能为: (A1)OP(A2) A1 或 (A1)OP(A2) A2源地址:仅提供操作数的地址目的地址:既提供一个操作数,又存放操作结果的地址。OP A1 A2 2021-6-1 16 存储器存储器型(SS型)指令:A1、A2均为存储 器地址的二地址指令。 寄存器寄存器型(RR型)指令: A1、A2均为寄存 器地址的二地址指令。 寄存器存储器型(RS型)指令: A1、A2中一个是 寄存器地址,另一个是存

8、储器地址的二地址指令。也 称一个半地址指令。OP R1 R2二地址指令的几种形式OP R n A 2021-6-1 17 二地址指令的指令长度短,特别是RR型指令,不需访问存储器取操作数,指令执行速度快,因此是最常用的一种指令格式。尤其在RISC结构机器中,所有运算型指令均为RR型指令。二地址指令执行后,参加运算的操作数被破坏,若不希望被破坏,则需提前保护。 2021-6-1 18 4. 一地址指令(单地址指令)一地址指令的格式为:A可以是存储器地址,也可是寄存器地址。OP A 2021-6-1 19 一地址指令的两种情况 单操作数指令:如INC、DEC、NEG等,只需一个操作数,其功能为:O

9、P(A) A。 双操作数指令:另一个操作数通常采用隐含寻址的方法,将操作数隐含在约定的累加器AC中,其指令功能为:(AC)OP(A) AC。 一地址指令长度短,指令执行速度快(若A为存储器地址,只需一次访存取数),对于字长较短的微、小型机,是一种常用的指令格式。 2021-6-1 20 5零地址指令零地址指令中只有操作码而无地址码,其指令格式为;零地址指令也有两种情况: 不需操作数的控制型指令,如HALT、WAIT、 NOP等。 运算型零地址指令:操作数隐含在堆栈中。OP 2021-6-1 21 5.1.4 指令操作码指令系统中的每一条指令都有一个唯一确定的操作码,用以指示指令的操作功能。不同

10、的指令具有不同的操作码。为了能表示指令系统中的全部操作,指令字中必须有足够长度的操作码字段。假定指令系统中有m种操作,则操作码位数n应满足: nlog2m指令操作码的编码有定长编码和变长编码两种。 2021-6-1 22 定长编码的指令操作码:所有指令码的长度一致,位置固定。是一种简单规整的编码方法。由于定长编码的操作码位数和位置固定,因而指令译码简单,有利于简化硬件设计。在字长较长的大、中型机以及超小型机中被广泛采用, 例如:在IBM 360/370机中,所有指令的操作码均为8位,最多可指定256种操作。定长编码的指令操作码 2021-6-1 23 变长编码的指令操作码:不同指令的操作码长度

11、不完全相同,操作码的位数不固定,分散地放在指令字的不同位置上。采用变长编码的方法,可用较短的指令字长表示更多的操作类型,寻址较大的存储空间。 在早期的微、小型机中,由于指令字较短,均采用变长编码的指令操作码。如Intel 8086、PDP一11等机器。变长编码的指令操作码的位数不固定,且位置分散,因而增加了指令译码与分析的难度,使硬件设计复杂化。变长编码的指令操作码 2021-6-1 24 扩展操作码法最常用的变长操作码的编码方式是扩展操作码法。扩展操作码法:当指令长度一定时,将操作数地址多的指令选择短的操作码,操作数地址少的指令选择较长操作码。 采用扩展操作码法即能充分地利用指令字的各个字段

12、,又能在不增加指令长度的情况下扩展操作码长度,使它能表示更多的指令。 2021-6-1 25 例:设某机的指令长度为16位。操作码为4位,具有三个地址字段,每个地址字段长为4位。其指令格式为:按照定长编码的方法,4位操作码可表示16条三地址指令。若指令系统中要求有15条三地址指令、15条二地址指令、15条一地址指令和16条零地址指令,共61条指令。则需要采用变长操作码方式进行编码。15 12 11 8 7 4 3 0OP A1 A2 A3 2021-6-1 26条 零 地 址 指 令条 单 地 址 指 令 条 二 地 址 指 令条 三 地 址 指 令161515151111 1111 1111

13、 1111 0000 1111 1111 1111 xxxx 1110 1111 1111 xxxx 0000 1111 1111 xxxx xxxx 1110 1111 xxxx xxxx 0000 1111 xxxx xxxx xxxx 1110 xxxx xxxx xxxx 0000 2021-6-1 27 例:设机器指令字长为16位,指令中地址字段的长度为4位,共有11条三地址指令,72条二地址指令,64条零地址指令。问最多还能规定多少条单地址指令? 解:三地址指令的地址字段共需12位,所以可有4位操作码,可规定16条三地址指令。现有11条三地址指令,所以还有16115个编码用于二地址

14、指令。 二地址指令的地址字段共需8位,可有8位操作码,去掉三地址指令用掉的操作码,可规定51680条二地址指令。现有72条二地址指令,所以还有80728个编码用于单地址指令。 2021-6-1 28 单地址指令的地址字段共需4位,可有12位操作码,去掉二、三地址指令用掉的操作码,可规定816128条单地址指令。由于要求有64条零地址指令,而4位操作码只能提供16条指令,所以需要由单地址指令提供64/164个操作码编码,因此还能规定1284124条单地址指令。 2021-6-1 29条 零 地 址 指 令条 单 地 址 指 令条 二 地 址 指 令 条 三 地 址 指 令641247211 11

15、11 1111 1111 1111 0000 1100 1111 1111 xxxx 1011 1111 1111 xxxx 0000 1000 1111 xxxx xxxx 0111 1111 xxxx xxxx 0000 1011 xxxx xxxx xxxx 1010 xxxx xxxx xxxx 0000 2021-6-1 30 5.2 寻址方式寻址方式:形成本条指令的操作数地址和下一条要执行指令的地址的方法。寻址分为指令地址的寻址和操作数地址的寻址。 2021-6-1 31 指令的执行过程ALUAPCMAR MEM MDRRS IRIDPLA 控 制 信 号 2021-6-1 32

16、1. 指令地址的寻址 顺序方式:PC增量 PC 指令通常顺序存放,程序顺序执行时,可以采用PC增量的方式形成下条指令地址。即按照PC的内容依次取指。增量的多少取决于一条指令所占的存储单元数。 跳越方式:当程序程序转移时,修改PC的内容。 当程序需要转移时,由转移类指令产生转移地址并送入PC中。转移地址的形成有各种方法。5.2.1 寻址的基本概念 2021-6-1 33 由于操作数的存放往往是随机的,所以希望有多种方式产生操作数地址。另外为了提高程序设计质量,也希望能提供多种灵活的寻址方式。 因此,寻址方式主要是指操作数地址的寻址方式。操作数地址有多种寻址方式。 形式地址:指令中给出的地址。 由

17、于有多种寻址方式,指令中地址字段给出的地址,不一定是操作数的实际地址,称为形式地址。2. 操作数地址的寻址 2021-6-1 34 有效地址:形式地址经过一定的运算而得到的操作数的实际地址。有效地址是CPU实际访问的主存单元的地址。讨论各种寻址方式就是为了确定由形式地址变换为有效地址的算法,并按照这些算法确定相应的硬件结构,自动地实现寻址。 2021-6-1 35 寻址方式的要求: 指令内包含的地址尽可能短,以缩短指令长度。 能访问尽可能大的存储空间。 即能提供尽可能长的地址信息。根据程序所具有的局部性特性,大多数程序在一段时间内都使用存储器的一个小区域,所以,可以用短地址访问该区域内的任一单

18、元的。 希望地址能隐含在寄存器中。 因为寄存器地址比较短,而寄存器长度一般与机器字长相同,在字长较长的机器中寄存器内存放的地址可访问很大的存储空间,所以地址隐含在寄存器,可以减少指令长度 能在不改变指令的情况下改变地址的实际值。 即在数组、向量、线性表、字符串等数据结构的操作中,能够实现操作数地址的最大增减量。 寻址方式尽可能简单规范,以简化硬件设计。 2021-6-1 36 5.2.2 常用寻址方式1立即寻址指令字中直接给出操作数。即指令所需的操作数在指令的地址码部分直接给出。这种寻址方式在取指令的同时操作数即被取出,不必再次访问存储器,提高了指令执行速度。但由于指令字有限,使得数据范围受限

19、。OP立即寻址D Data D 2021-6-1 37 立即寻址方式通常用于给某一寄存器或存储器单元赋予初值或提供一个常数。例:Intel 8086指令: MOV AX,2000H ;将数据2000H存入累加器AX中 2021-6-1 38 2.直 接 寻 址 指 令 字 中 直 接 给 出 操 作 数 的 有 效 地 址 。有效地址 EA 2021-6-1 39 这种方式简单直观,便于硬件实现。但随着存储器容量不断扩大,要寻址整个主存空间,将造成指令长度加长。另外程序位置受到限制。例:Intel 8086指令: MOV AX,2000H 将有效地址为2000H的内存单元的内容读入累加器AX中

20、。 2021-6-1 40 3 间 接 寻 址指令的地址码部分给出的是操作数地址的地址或是指示操作数地址的地址指示字。间接寻址分为一级间址和多级间址。一级间址:指令的地址码部分给出的是操作数地址的地址。OP间接寻址 AE (A) Data (A) 2021-6-1 41 例:某计算机指令: MOV AL,2000HE (A)(2000H)3000HData50H 00H30H 50H2000H 3000H2001H 50HAL 2021-6-1 42 多级间址:指令的地址码部分给出的是操作数地址的地址指示字。在多级间址中,通常把地址字的高位作为标志位,以指示该字是有效地址,还是地址指示字。图例

21、中 E(A) 2021-6-1 43 间接寻址的特点: 间接寻址比直接寻址灵活,可扩大寻址范围,以短的地址码访问大的存储空间。 如:指令字长与存储器字长均为16位,若指令中地址码长为10位,其直接寻址范围为1k空间;如果用间接寻址,有效地址为16位,其寻址空间为64k,比直接寻址扩大64倍。 采用间接寻址,当操作数地址需要改变时,可不必修改指令,只要修改地址指示字中内容(即存放有效地址的单元内容)即可。 间接寻址需多次访存才能取得操作数,尤其是多级间接寻址,因而降低了指令的执行速度。 大多数计算机只允许一级间接寻址。在一些大型高速计算机中,很少采用间接寻址。 2021-6-1 44 4 寄 存

22、 器 直 接 寻 址 ( 寄 存 器 寻 址 )在指令地址码中给出某一通用寄存器号(或寄存器地址),该寄存器的内容即为指令所需的操作数。寄存器存取信息的速度比主存快,需要的地址短,可压缩指令长度,有利于加快指令执行速度。但寄存器的数量有限。例: Intel 8086指令: MOV AL,BL ;AL BLOP寄存器寻址RnE Rn Data (Rn) 操 作 数Rn 2021-6-1 45 5. 寄 存 器 间 接 寻 址指令中地址码部分所指定的寄存器中内容是操作数的有效地址。 E(Rn) Data(Rn) 2021-6-1 46 例:Intel 8086指令: MOV AL,BX设 BX20

23、00H,(2000H)80H,则 AL 80H由于寄存器间接寻址方式中,地址存放在寄存器中,因此只需一次访存即可取得操作数,而且寄存器又能给出全字长的地址码,可寻址较大的存储空间。 2021-6-1 47 6 变 址 寻 址指令中指定的变址寄存器的内容与指令字中的形式地址相加形成操作数的有效地址。变址寄存器通常是通用寄存器中的某一个。 E(Rx)D Data(E) 2021-6-1 48 例:Intel 8086指令: MOV AL,BX+4 设 BX2000H,BX+42004H (2004H)82H,则 AL 82H在某些计算机中,变址寄存器还可以自动增量或减量。每存取一个数据,根据数据的

24、长度,变址寄存器的内容自动增量或自动减量,前者称为自增型变址寻址;后者称为自减型变址寻址。 2021-6-1 49 例:VAX11指令: MOV (R1)+,R0寄存器R1中内容先作为源操作数地址,读数后R1按操作数长度增量。例:设每次增量为1,若R11000H,指令执行后,R11001H。例:指令 MOV -(R1),R0寄存器R1按操作数长度减量后作为源操作数地址,并将减量结果送回R1。例:设每次减量为1,R 11000H,指令执行时先将R1减1,R10FFFH,然后按R1读源操作数。 2021-6-1 50 变址寻址可用于数组、向量、字符串等数据的处理。 例: Intel 8086指令:

25、 LODS ;AL (SI),SI SI1SI A A a0A1 a 1A2 a2+1 2021-6-1 51 变址寻址还可以与间接寻址相结合,形成复合型寻址。 先间址后变址 E(Rx)(A) 2021-6-1 52 先变址后间址 E(Rx)A) 2021-6-1 53 7 相 对 寻 址将程序计数器 PC 的当前内容与指令中给出的形式地址相加形成操作数的有效地址。 E(PC)Disp 2021-6-1 54 PC当前内容一般为现行指令的下一单元的地址。形式地址是操作数地址相对于PC当前内容的一个相对位移量(Disp),位移量可正可负,一般用补码表示。在相对寻址中,只要保持位移量不变,就可实现

26、指令带着数据在存储器中搬家,有利于实现程序再定位。K OP 相对寻址 5K+1K+2K+6操作数M OP 相对寻址 5M+1M+2M+6操作数 2021-6-1 55 相对寻址还经常用于转移指令中,以PC内容为基准,加上相对位移量形成转移地址。例如PDP11转移指令格式为:其转移地址为(PC)2Disp。之所以加 2Disp,是因为PDP一11是以字节为单位对主存进行编址的,而Disp是相对于PC的字位移,一个字为2个字节。15 8 7 0OP Disp 2021-6-1 56 例:8086指令 JNC 03H 的功能为,如果进位为0,则转移到目标地址为 (PC)03H处进行执行。设指令为双字

27、节指令,本条指令地址为1000H。 本条指令取指后,PC1002H 转移目标地址为 1002H0003H1005H 若指令为JNC 0FDH 则转移目标地址为 1002HFFFDH0FFFH 0FFDH0FFEH0FFFH1000H JNC1001H 03H1002H1003H 1004H1005HD FDHD 03H 2021-6-1 57 8 基 址 寻 址操作数的有效地址等于指令中的形式地址与基址寄存器中的内容之和。基址寄存器可以是一个专用的寄存器,也可以是由指令指定的一个通用寄存器。 E(Rb)Disp 2021-6-1 58 基址寻址主要用于将用户程序的逻辑地址(用户编写程序时所使用

28、的地址)转换成主存的物理地址(程序在主存中的实际地址)。在多道程序运行时,系统的管理程序将多道程序装入主存。由于用户在编写程序时,不知道自己的程序应该放在主存的哪一个实际物理地址中,只能按相对位置使用逻辑地址编写程序。当用户程序装入主存时,为了实现用户程序的重定位,系统程序给每个用户程序分配一个基准地址。程序运行时,该基准地址装入基址寄存器,通过基址寻址,实现逻辑地址到物理地址的转换。 2021-6-1 59 基址寻址与变址寻址在形式上以及有效地址的计算方法上都是相似的,但它们的应用场合是不同的是不同的。基址寻址是面向系统的,主要用于逻辑地址到物理地址的变换,用以解决程序定位问题。基址寄存器由

29、系统程序通过特权指令使用,对用户是透明的。另外基址寄存器的内容一般不进行自动增量和减量。变址寻址是面向用户的,主要用于访问数组、向量、字符串等成批数据,用以解决程序的循环控制问题。变址寄存器的内容可以进行自动增量和减量。在早期的一些微、小型机中,基址寻址与变址寻址是不加区分的。 2021-6-1 60 基址加变址寻址:将基址寻址与变址寻址结合起来。例:IBM360370的RX型指令,格式如下:第二个操作数的有效地址为: E2(X2)+(B2)+D2其中X2为变址寄存器,B2为基址寄存器,它们都可以是16个通用寄存器中的一个。D2为12位的位移量。这条指令最少只需访存2次。取指(读D)、基址加变

30、址后进行访存读操作数0 7 8 11 12 15 16 19 20 31OP R1 X2 B2 D2 2021-6-1 61 页面寻址:将存储器分成若干页,每一页都有自己的页面地址,一页内有若干单元,由页内地址访问一页内的某一单元,将页面地址与页内地址相拼接即形成操作数的有效地址。扩展寻址:将要访问的存储单元地址的高位预先装入扩展寄存器中。访存时,扩展寄存器内容与指令字形式地址相拼接,形成操作数的有效地址。(x86计算机)堆找寻址:按堆栈指示器SP的内容确定访存地址。相联寻址:使用特殊存储结构的相联存储器,按所需内容进行寻址。其 它 寻 址 方 式 2021-6-1 62 寻址方式码的省略当地

31、址部分的地址为单一时(指定只有一种),如寄存器寻址,则可以省略寻址方式,直接给出寄存器的编号。 例如:某机的ALU双操作数指令18条,均为R-R型,且有32个寄存器,则指令格式为:OP(5位 ) Reg1编 号 (5位 ) Reg2编 号 (5位 ) 2021-6-1 63 5.4 指令系统的两种设计风格1. 复杂指令系统计算机 CISC(Complex Instruction Set Computer)靠增强指令的功能,增加指令系统的复杂程度来提高计算机系统的性能。特点:(1) 指令系统复杂庞大,指令数目一般多达200300条。(2)指令格式多,指令字长不固定,使用多种不同的寻址 方式。 2

32、021-6-1 64 (3) 可访存指令不受限制。(4) 各种指令的执行时间和使用频率相差很大。(5) 大多数采用微程序控制器。 2021-6-1 65 2.精简指令系统计算机RISC(Reduced Instruction Set Computer)靠精简指令系统,简化指令功能及优化的编译程序来提高计算机系统的性能。特点: (1)选取使用频率高的简单指令以及很有用但又不复杂 的指令组成指令系统。 (2)指令数少,指令长度一致,指令格式少,寻址方式 少,指令总数大都不超过100条。 (3)以寄存器 寄存器方式工作,只有取数/存数 (LOAD/STORE)指令访问存储器,其余指令的操作都 在寄存

33、器之间进行。 2021-6-1 66 (4) 采用指令流水线调度,使大部分指令在一个机器周期 内完成。(5) 使用较多的通用寄存器以减少访存。(6) 以组合电路控制为主,不用或少用微程序控制。 采用优化编译技术,力求高效率支持高级语言实现。 2021-6-1 67 典型的RISC指令系统的指令条数 机 器 名 指 令 数 机 器 名 指 令 数 RISC 39 ACORN 44 MIPS 31 INMOS 111 IBM 801 120 IBMRT 118 MIRIS 64 H PPA 140 PYRAMID 128 CLIPPER 101 RIDG E 128 SPARC 89 2021-6

34、-1 68 RISC机与CISC机相比的主要优点 充分利用了VLSI芯片的面积。 提高了计算机的运算速度 便于设计,降低了开发成本,提高了可靠 性 有效地支持高级语言 2021-6-1 69 CISC和RISC技术都在发展,两者都具有各自的特点。目前两种技术已开始相互融和。这是因为随着硬件速度、芯片密度的不断提高,RISC系统也开始采用CISC的一些设计思想,使得系统日趋复杂;而CISC机也在不断部分采用RISC地先进技术(如指令流水线、分级Cache和多通用寄存器等),其性能更加提高。 2021-6-1 70 5.5 指令系统举例 5.5.1 Ultra SPARC II的指令系统 SPAR

35、C体系结构是Sun Microsystems公司于1987年首先提出的。该体系结构是较早提出的一种商用RISC体系结构。最初的SPARC是32位体系结构,而基于该体系结构的版本9推出的Ultra SPARC II是一个64位的处理器。 2021-6-1 71 5.5.2 Pentium II的指令系统 Pentium II是Intel公司于1997年5月推出的Pentium系列的第二代产品,与Intel的80486、Pentium、Pentium Pro、Pentium MMX、Celeron和Xeon等微处理器一样,是一台完全的32位机。Pentium II采用的是Intel公司的IA32体

36、系结构,引入了包括MMX等指令在内的更高版本的指令,使其性能比Intel先行推出的CPU芯片有了更大的提高。 2021-6-1 72 5.3 指令类型及功能不同类型的计算机,由于其性能、结构、适用范围的不同,指令系统间差异很大。有的机器指令系统丰富,指令条数多;有的机器指令系统简单,指令类型少。有的机器是复杂指令系统的计算机(CISC),有的机器是精简指令系统的计算机(RISC)。 2021-6-1 73 5.3.1 指令系统的基本要求 1. 完备性任何运算都可以用指令编程实现。即要求指令系统的指令丰富、功能齐全、使用方便,应具有所有基本指令。 2. 有效性用指令系统中的指令编写的程序能高效率

37、运行,占用空间小、执行速度快。 3. 规整性指令系统具有对称性、匀齐性,指令与数据格式的一致性。 2021-6-1 74 对称性:所有寄存器和存储单元均同等对待,所有指令可以使用所有寻址方式,减少特殊操作和例外情况。匀齐性:一种操作可支持各种数据类型。如算术指令可支持字节、字、双字、十进制数、浮点单精度数、浮点双精度数等。指令与数据格式的一致性:指令长度与数据长度有一定的关系,以便于存取和处理。 4. 兼容性系列机的各机种之间有基本相同的指令集。至少作到向后兼容,即先推出的机器上的程序可以在后推出的机器上运行。 2021-6-1 75 5.3.2 指令类型一台计算机最基本的、必不可少的指令是不

38、多的,因为很多指令都可以用这些最基本的指令来实现。例如,乘、除运算指令,浮点运算指令,既可以直接用硬件实现,也可以用其它指令编制程序来实现,但两者在执行时间和编程的方便性差别很大。因此,指令系统中有相当一部分指令是为了提高程序的执行速度和便于用户编程而设计的。一个完善的指令系统应包含的以下功能的指令。 2021-6-1 76 1数据传送指令完成数据传送功能。数据传送指令应解决的问题: 传送范围:从何处到何处。有 R R、R M、M M 传送单位:一次传送的数据量。字节、字、双字、成组传送(如数组等) 寻址方式:源地址和目的地址的确定方法。数据传送时,数据从源地址传送到目的地址,源地址中的数据不

39、变。有的机器设置通用的MOV指令;有的机器用LOAD、STORE指令访存,LOAD为读数指令,STORE为存数指令。 2021-6-1 77 例:8086指令 MOV AL,BL ;AL BL MOV AL,Disp(BX)(SI) ;AL (BX)(SI)+Disp)例:IBM370机的成组取指令: R1、R3:寄存器字段,指定16个通用寄存器中的某一个 B 2:基址寄存器 D2:形式地址。成组取R1 R3 B2 D2 2021-6-1 78 源操作数的起始地址:E2(B2)十D2。指令功能:从主存E2单元开始,顺序地取出多个数据,分别存放在从R1字段指定的寄存器到R3字段指定的寄存器的编号

40、连续的多个寄存器中。例如,R1字段指定寄存器R6,R3字段指定寄存器R11。则指令完成的功能是:从E2单元开始顺序取出6个数据,分别存入R6到R11共6个寄存器中。 2021-6-1 79 2算术逻辑运算指令算术逻辑运算指令主要用于进行各种算术运算及逻辑运算。算术运算:包括定点、浮点的加、减、乘、除运算以及求反、求补、加1、减1、比较等指令。逻辑运算:主要是对布尔量进行运算,一般包括与、或、非、异或、测试等指令。逻辑运算指令多用于对数据字中某些位(一位或多位)进行操作。 2021-6-1 80 例:8086指令系统中 ADD AL,BL ;AL AL+BL MUL BL ;AX ALBL AN

41、D AL,0FEH ;AL AL FEH,即AL的最低位 ;清0,其余位不变。 OR AL,0F0H ;AL AL F0,即AL的高4位置1, ;其余位不变 TEST AL,00000001B ; AL 00000001B A00 结果为0 A 01 结果不为0 2021-6-1 81 随着计算机的不断发展,硬件价格的不断下降,计算机的指令系统也在不断发展,特别在CISC计算机中,常把一些常用的子程序用一条指令代替,如乘方指令、开方指令等,例如 VAX一11的计算多项式指令,一条指令可实现一个多项式的计算。在一些大型机、巨型机中,不仅支持标量运算,还设置向量运算指令。 2021-6-1 82

42、3移位指令实现对操作数的左、右移位。移位操作指令分为算术移位、逻辑移位和循环移位三种,可以实现对操作数左移或右移一位或几位。 (参见第3章的内容) 2021-6-1 83 算术和逻辑移位指令还可用于实现简单的乘除运算。移位指令的这个性质,对于没有乘除运算指令的计算机特别重要。移位指令的执行时间比乘除指令的执行时间短,因此采用移位指令实现简单的乘除运算可获得较高速度。 nnnnnnnn 2222位 : 无 符 号 数右 移 位 : 无 符 号 数左 移逻 辑 移 位 位 : 带 符 号 数右 移 位 : 带 符 号 数左 移算 术 移 位 2021-6-1 84 4堆栈操作指令堆栈操作指令是一种

43、特殊的数据传送指令。堆栈操作有两种: 压入(进栈)指令:把指定的操作数送入栈顶。 SP SP减量,(SP)数据 弹出(退栈、出栈)指令:从栈顶弹出数据,送到指令指定的目的地址中。目的 (SP),SP SP增量 2021-6-1 85 例:8086的指令系统中进栈指令:PUSH AX SP SP1,(SP) AH,SP SP1,(SP) AL出栈指令:POP AX AL (SP),SP SP1,AH (SP),SP SP1低地址ALAH 高地址SPSP-1SP-1低地址ALAH高地址SP+1SP+1SP ALAH 2021-6-1 86 在一般的计算机中,堆栈操作指令主要用来保存和恢复中断、子程

44、序调用时的现场数据和断点指令地址,也用于子程序调用时的参数传递。为了支持这些功能的快速实现,有些机器还设有多数据的压入指令和弹出指令,如VAX一11机的多寄存器指令,用一条指令最多可把15个寄存器(R14R0)中的数据顺序压入堆栈中。 2021-6-1 87 5字符串处理指令字符串处理指令是用于进行非数值数据处理的指令。一般包括字符串传送、字符串比较、字符串查找、字符串抽取、字符串转换等指令。字符串传送指令:将数据块从主存的某一区域传送到另一区域。字符串比较指令:把一个字符串与另一个字符串逐个字符进行比较。字符串查找指令:在一个字符串中查找指定的子串或字符。 2021-6-1 88 字符串抽取

45、:从字符串中提取某一子串。字符串转换:从一种数据编码转换为另一种编码。字符串处理指令在需要对大量字符串进行各种处理的文字编辑和排版方面非常有用。例:8086指令 MOVS ;串传送指令 LODS ;串读入指令 STOS ;串存储指令 2021-6-1 89 6程序控制指令用于控制程序运行的顺序和选择程序的运行方向的指令。程序控制指令使程序具有测试、分析与判断的能力。主要包括转移指令、循环控制指令及子程序调用与返回指令。 转移指令:控制程序转到指定地址继续执行。 无条件转移:执行时不受任何条件的约束,直接把控制转移到指令指定的转向地址。又称必转指令 条件转移:只有满足条件时,才执行转移操作,按指

46、定的转向地址转移,否则,程序仍按原顺序执行。 2021-6-1 90 条件转移指令是最基本的转移指令,它的执行受一定条件的约束。条件转移指令使计算机具有很强的逻辑判断能力,这是计算机实现地址转移,能高度自动化工作的关键。条件转移指令转移的条件一般是前次运算的某些结果特征。在计算机CPU中通常设置一个状态寄存器(或条件码寄存器),用以记录所执行的算术逻辑运算指令、移位指令等的结果标志。这些标志主要包括:进位标志(C)、结果溢出标志(V)、结果为零标志(Z)、结果为负标志(N)及结果奇偶标志(P)等。这些标志的组合,可以产生十几种条件转移,如结果为零转、非零转、为负转、为正转、溢出转、非溢出转等。

47、 2021-6-1 91 转移指令的转移地址一般采用相对寻址或直接寻址。相对寻址:转移地址为当前PC内容与位移量之和;直接寻址:转移地址由指令中地址码直接给出。例:8086指令系统 JMP L1 ;直接寻址的转移,无条件转移到L1处, JNZ 50H ;相对寻址的转移。若操作结果不为0,则转移到当前PC50H处。设指令地址为1000H,则当前PC1002H,转移地址为: 1002H50H1052H 2021-6-1 92 JC ABH ;相对寻址的转移。若操作结果有进位,则转移到当前PCABH处。设指令地址为1000H,则当前PC1002H,转移地址为: 1002HFFABH0FABH 202

48、1-6-1 93 循环控制指令:支持循环程序执行的指令。循环控制指令实际上是一种增强型的条件转移指令。循环控制指令的功能:循环控制变量的修改、测试判断和转移等。例:Intel 8086指令系统 LOOP L1 ;CX CX1,如果CX 0,则转到L1处继续执行;如果CX0,则结束循环。 2021-6-1 94 子程序调用与返回指令子程序:一组可以公用的指令序列,只要给出子程序的入口地址就能从主程序转入子程序。子程序的入口地址:子程序第一条指令的地址。子程序调用指令(转子指令、过程调用指令):用于从主程序转向子程序的指令。返回指令:从子程序返回主程序的指令。在转子指令中要给出子程序的入口地址;为

49、了执行返回指令时,能够正确返回主程序,转子指令应具有保护断点的功能。断点:主程序的返回地址。即转子指令的下一条指令的地址。 2021-6-1 95 常用的保存返回地址的方式: 存放在子程序第一条指令的前一个字单元。 保存在某一约定的寄存器中。 压入堆栈。这是一种最好的方法,它可允许多重转子和递归调用。 Intel 8086采用堆栈保存返回地址。它设置了子程序调用指令CALL和返回指令RET。CALL指令把下一条指令的地址(返回地址)压入堆栈,RET指令从堆栈中取出该地址并返回该地址继续执行。转子指令和返回指令也可以是带条件的,条件转子和条件返回其条件与转移指令的条件相类似。 2021-6-1

50、96 K CALL AK1 A MOVA1 RETSP2 K1LK1 H SP 堆 栈 子 程 序主 程 序 2021-6-1 97 陷 井 指 令陷井:一种意外事故中断。设置陷井的目的是为了通知CPU所出现的故障,并根据故障情况,转入相应的故障处理程序。在一般计算机中,陷井指令作为隐指令不提供给用户使用,只有在出现故障时,才由CPU自动产生并执行。但也有的计算机中设置了用户可用的陷井指令,利用它来实现系统调用和程序请求。例如:Intel 8086 CPU的软件中断指令就是直接提供给用户使用的陷井指令,用它可完成系统调用过程。 2021-6-1 98 7输入/输出指令输入/输出指令是用于主机与

51、外部设备之间进行各种信息交换的指令。主机与外部设备之间交换的信息包括: 输入/输出数据 主机向外部设备发出各种控制命令 外部设备的各种工作状态输入/输出指令的三种设置方式: 外部设备采用单独编码的寻址方式并设置专用的I/O指令。由I/O指令的地址码部分给出被选设备的设备码(或端口地址),操作码指定所要求的I/O操作。 2021-6-1 99 例:NOVA机的 I/O指令格式如下:设备码:指定设备。控制字段:规定启动或关闭设备码指定的设备。 OP:规定要求完成的I/O操作。例:8086的I/O指令 IN AL,80H ;将80H号端口的内容读入AL OUT 90H,AL ;将AL的内容写入90H

52、号端口011 AC OP控制设备码 2021-6-1 100 外设与主存统一编址,用通用的数据传送指令实现I/O操作。例如PDP11机采用外设与主存统一编址。不用设置专用I/O指令,可以象访问主存单元一样用MOV指令去访问外设的寄存器。这种编址方法不用设置专用I/O指令,但占用主存空间。 通过I/O处理机执行I/O操作。在这种方式中,CPU只需执行几条简单的I/O指令,如启动I/O,停止I/O,测试I/O设备等,对I/O系统的管理,I/O操作控制都由I/O处理机完成。提高了主机的效率。 2021-6-1 101 8其它指令完成某种控制功能的指令,如停机指令、等待指令、空操作指令、开中断、关中断、置条件码指令、陷井指令以及特权指令等。特权指令是指只能用于操作系统或其它系统软件,而不提供给用户使用的指令。在多任务、多用户的计算机系统中,这种特权指令是不可缺少的。它主要用于系统资源分配与管理,包括改变系统工作方式、检测用户的访问权限、修改虚拟存储器管理的段表、页表以及完成进程的创建与切换等。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!