-
- 素材大小:
- 2.69 MB
- 素材授权:
- 免费下载
- 素材格式:
- .ppt
- 素材上传:
- chenrong
- 上传时间:
- 2018-08-26
- 素材编号:
- 208598
- 素材类别:
- 学校PPT
-
素材预览
这是杭州电子科技大学介绍ppt,包括了指令操作码与地址码,指令字长和操作码扩展,指令字长度,指令操作码扩展等内容,欢迎点击下载。
杭州电子科技大学介绍ppt是由红软PPT免费下载网推荐的一款学校PPT类型的PowerPoint.
第六章 指令系统
6.1 指令格式
一、指令操作码与地址码
指令是由操作码和地址码两部分组成的:
一、指令操作码与地址码
1、操作码
操作码长度固定:将操作码集中放在指令字的一个字段内。
这种格式便于硬件设计,指令译码时间短,广泛应用于字长较长的、大中型计算机和超级小型计算机以及RISC(Reduced Instruction Set Computer)中。如IBM370和VAX-11系列机,操作码长度均为8位。
操作码长度不固定:指令操作码分散在指令字的不同字段中。
这种格式可有效地压缩操作码的平均长度,在字长较短的微机中被广泛采用。如PDP-11,Intel8086/80386等。
2、地址码
(1)三地址指令:
(A1)OP(A2)→A3
2、按照地址码分类
(4)零地址指令
不涉及操作数:如NOP、HLT指令
操作数隐含:如PUSH、POP指令
对于寄存器类型的操作数,地址A指寄存器编号。
3、操作数类型
按照指令处理的操作数存放位置分:
存储器类型:操作数存放在主存中,A为其地址信息
寄存器类型:操作数存放在CPU的通用寄存器中,A为寄存器号
立即数类型:操作数存放在指令(地址字段)中
按照指令处理的操作数性质分:
地址(addresses):存储器地址,是无符号整数。
数字(numbers):整数、浮点数、十进制数。
字符(characters)
逻辑数据:真假两种状态
二、指令字长和操作码扩展
1、指令字长度
机器指令是用二进制机器字来表示的,表示一条指令的机器字,就称为指令字。一条指令中所包含的二进制码的位数,称为指令字长度或指令字长。它主要取决于操作码的长度、操作数地址的长度和操作数地址的个数。不同机器的指令字长是不相同的。
注意区分:机器字长、指令字长、存储字长
按指令长度固定与否可以分为:
固定指令字长的指令:所有指令的字长均相等,一般等于机器字长。
可变指令字长的指令:指令字长不固定,通常取字节的整数倍。
1、指令字长度
按照指令字长与机器字长的关系分类:
短格式指令:指令字长小于或等于机器字长。
长格式指令:指令字长大于机器字长。
一个机器的指令系统中,短格式指令和长格式指令可以并存,通常将最常用的指令设计成短格式指令,可以节省存储空间、提高指令的执行速度。
2、指令操作码扩展
指令的操作码的编码方式:固定操作码长度的格式和可变操作码长度格式
采用扩展操作码技术,使操作码的长度随地址数的减少而增加,即不同地址数的指令可以具有不同长度的操作码,从而可以有效地缩短指令字长。
举例
2、指令操作码扩展
在设计操作码不固定的指令系统时,应安排指令使用频度高的指令占用短的操作码,对使用频度低的指令可占用较长的操作码,这样可以缩短经常使用的指令的译码时间。
指令操作码扩展技术是一种重要的指令优化技术,它可以缩短指令的平均长度,增加指令字所能表示的操作信息。但指令操作码扩展技术需要更多的硬件支持,它的指令译码更加复杂,使控制器设计难度增大。
6.2 寻址方式
一、指令寻址
1、顺序寻址方式
控制器中使用程序计数器PC来指示指令在内存中的地址。在程序顺序执行时,指令的地址码由PC自加1得出。
指令在内存中按顺序存放,当顺序执行一段程序时,根据PC从存储器取出当前指令, PC自动+1,然后执行这条指令;接着又根据PC指示从存储器取出下一条指令, PC自动+1, 执行……。
2、跳跃寻址方式
当程序执行转移指令时,程序不再顺序执行,而是跳转到另一个地址去执行,此时,由该条转移指令的地址码字段可以得到新指令地址,然后将其置入PC中。
指令寻址举例
二、数据寻址
形式地址:指令的地址码字段,不一定(通常都不)代表操作数的真实地址,记为A。
有效地址:操作数的真实地址,记作EA,它是由寻址方式和形式地址共同来确定的。
常见的有9种寻址方式。
复合寻址
所有的计算机CPU都采用多种寻址方式
问题:如何识别?
二、数据寻址
1、立即寻址(Immediate Addressing)
操作数在指令的地址码字段,即:
DATA=A
例如:
MOV AL, 5
MOV AX, 3064H
MOV AL, ‘A’
2.直接寻址(Direct Addressing)
操作数位于存储器中,操作数所在的存储器单元的地址存放在指令的地址字段A中,即:
EA=A
DATA=(EA)
例如:
MOV AX, [1000H]
ADD [2000H], BX
3、间接寻址( Indirect Addressing )
操作数位于存储器中,操作数所在的存储器单元地址也存放在存储器中,该存储器地址则存放在指令的地址字段中,即:
DATA=(EA)
EA=(A)
即:A为操作数地址的地址
4、寄存器寻址方式 ( Register Addressing )
操作数位于寄存器中,操作数所在的寄存器编号存放在指令的地址字段A中,即:
DATA=(Ri)
例如:
MOV AX, BX
MOV AL, BH
5、寄存器间接寻址方式
操作数位于存储器中,操作数所在的存储器地址存放在寄存器中,而该寄存器编号存放在指令的地址字段A中,即:
DATA=(EA)
EA=(Ri )
例如:
SUB DX, [ESI]
6、变址寻址(Indexed Addressing)
操作数位于存储器中,操作数所在的存储器地址EA由变址寄存器RI和指令的地址字段A指出:
DATA=(EA)
EA=(RI )+A
变址寻址举例
例如:
Data
str_tb db ‘Abort, Retry?’, 0
Code
MOV ESI, 0
MOV AL, str_tb[ESI]
……
INC ESI
7、基址寻址 ( Based Addressing )
操作数位于存储器中,操作数所在的存储器地址EA由基址寄存器Rb和指令的地址字段A指出:
DATA=(EA)
EA=(Rb )+A
基址寻址和变址寻址
基址寻址方式适合于多用户计算机系统,当操作系统为多道程序分配主存空间,将用户程序装入主存时,需要进行逻辑地址到物理地址的转换。
操作系统给每个用户一个基地址并将其放入相应的基址寄存器,在程序执行时,以基址为基准自动进行逻辑地址到物理地址的转换。
在应用中,基址寻址面向系统,可以用来解决程序在主存中的重定位和扩大寻址空间等问题;而变址寻址则面向用户编程,用来访问字符串、向量和成批数据
8、基址变址寻址
9、相对寻址 ( Relative Addressing )
操作数位于存储器中,操作数所在的存储器地址EA由程序计数器PC和指令的地址字段A指出:
DATA=(EA)
EA=(PC )+A
A通常称作相对偏移量DISP。
相对寻址主要用于转移指令,执行之后,程序将转移到(PC)+偏移量为地址的指令去执行。
偏移量可正、可负,通常用补码表示,即可相对PC值向后或向前转移。
10、堆栈寻址 ( Stack Addressing )
操作数位于存储器中,操作数所在的存储器地址EA由堆栈指针寄存器SP隐含指出,通常用于堆栈指令。
堆栈是由若干个连续主存单元组成的先进后出(first in last out,即FILO)存储区,第一个放入堆栈的数据存放在栈底,最近放入的数据存放在栈顶。栈底是固定不变的,而栈顶是随着数据的入栈和出栈在时刻变化。栈顶的地址由堆栈指针SP指明。
一般计算机中,堆栈从高地址向低地址扩展,即栈底的地址总是大于或等于栈顶的地址,称为上推堆栈;也有少数计算机相反,称为下推堆栈。
堆栈寻址主要用来暂存中断和子程序调用时现场数据及返回地址。
堆栈的结构
堆栈的操作:压入(PUSH)和弹出(POP),对应PUSH和POP指令,假设数据字长为1B
压入指令 PUSH Ri:将Ri寄存器内容压入堆栈。其操作是:
(SP)-1→SP,(Ri) →(SP)
弹出指令POP Ri:从堆栈中弹出1个数据送Ri寄存器,其操作是:
((SP)) → Ri ,(SP)+1→SP
其中(SP)表示堆栈指针SP的内容;((SP))表示SP所指的栈顶的内容。
6.3 指令类型
1. 数据传送指令
包括寄存器与寄存器、寄存器与存储单元、存储单元与存储单元之间的传送。
2.算术逻辑运算指令
实现算术运算(加、减、乘、除等)和逻辑运算(与、或、非、异或)。有些计算机还设置有位操作指令,如位测试(测试指定位的值)、位清零、位求反指令等。
3. 移位操作指令
可分为算术移位、逻辑移位和循环移位。
6.3 指令类型
4.程序控制类指令
无条件转移指令:无条件转至目的地址处执行。
条件转移指令:条件满足转至目的地址处执行,否则顺序执行(生成条件码判断决定是否转移)
调用与返回指令:
调用指令CALL用于从当前的程序位置转至子程序的入口;
返回指令RETURN用于子程序执行完后重新返回到原程序的断点。
陷阱指令
陷阱其实是一种意外事故的中断。
6.3 指令类型
5.堆栈操作指令
6.输入输出指令:它完成从外设端口读入一个数据到CPU的寄存器内,或将数据从CPU的寄存器输出到某外设的端口中,此类指令适用于外设寄存器独立编址的情况。
7.处理器控制指令:包括等待指令、停机指令、空操作指令、开/关中断指令等
8.特权指令:这类指令主要用于系统资源的分配和管理。特权指令只能给操作系统或其他系统软件,而不能提供给用户使用,以防止破坏系统或其他用户信息
6.4 指令系统的设计技术
一、指令系统的要求
1、完备性:指指令系统直接提供的指令足够使用,而不必用软件来实现。
2、有效性:是指利用该指令系统所编写的程序能够高效地运行。程序占据存储空间小、执行速度快。
3、规整性:
对称性:所有的指令都可使用各种寻址方式;
匀齐性:指令可以支持各种数据类型;
指令格式和数据格式的一致性:指令长度和数据长度有一定的关系,以方便处理和存取。
4、兼容性:“向上兼容”,即低档机上运行的软件可以在高档机上运行。
二、指令系统的发展
“复杂指令系统计算机”,简称CISC(Complex Instruction Set Computer)
指令格式不固定,寻址方式丰富,功能复杂
一些比较简单的指令,在程序中仅占指令系统中指令总数的20%,但出现的频率却占80%;占指令总数20%的最复杂的指令,却占用了控制存储器容量的80%,且使用频率却不高。
二、指令系统的发展
精简指令系统计算机(Reduced Instruction Set Computer,简称RISC)
RISC体系结构的芯片经历了三代:
第一代以32位数据通路为代表,支持Cache,软件支持较少,性能与CISC体系结构的产品相当,如RISC Ⅰ、MIPS、IBM801等。
第二代产品提高了集成度,增加了对多处理机系统的支持,提高了时钟频率,建立了完善的存储管理体系,软件支持系统也逐渐完善。它们已具有单指令流水线,可同时执行多条指令。
第三代RISC产品为64位微处理器,采用了超级流水线技术和超标量技术,提高了指令级的并行处理能力,使RISC处理器的整体性能更好。如MIPS的R4000处理器。
三、CISC的特点
早期CISC指令系统的主要特点是:
指令系统复杂。具体表现为指令条数多、寻址方式多、指令格式多。
指令串行执行,大多数指令需要多个时钟周期完成。
采用微程序控制,因为微程序控制器适合于实现CISC指令执行过程的控制。
有较多的专用寄存器,大部分运算所需的数据均需访问存储器获取。
由于指令系统复杂,编译系统面临复杂的选择,编译程序难以用优化措施生成高效的目标代码程序。
三、CISC的特点
CISC主要在以下方面来对增强指令的功能
面向目标程序增强指令功能
具体方法有:
提高运算类指令的功能
提高传送类指令的功能
增强程序控制指令功能
面向编译程序目标代码生成优化的改进
提供面向操作系统优化的指令
四、RISC的特点
大部分RISC机具有以下特点:
(1) 指令系统设计时选择一些使用频率较高的简单指令,且选择一些很有用但不复杂的指令。
(2) 指令长度固定,指令格式种类少,寻址方式种类少。
(3) 只有取数/存数指令访问存储器,其余指令的操作都在寄存器之间进行。
四、RISC的特点
(4) 采用流水线技术。超级标量及超级流水线技术,增加了指令执行的并行度,使得一条指令的平均指令执行时间小于一个机器周期。
(5) CPU中通用寄存器数量相当多,可以减少访存次数。
(6) 以硬布线控制逻辑为主,不用或少用微码控制。
(7) 采用优化的编译程序,力求有效地支持高级语言程序。
同CISC比较,RISC的优点
(1) 可以充分利用VLSI芯片面积
(2) 可以提高计算机运算速度
指令数、寻址方式和指令格式的种类都较少,且指令的编码很有规律,使指令译码加快。
在简化指令的情况下,硬布线连接比微程序控制的延迟小,可缩短CPU的周期。
CPU的通用寄存器多,减少了访存次数,加快了速度
大部分指令能在一个周期内完成,特别适合于流水线工作。
有的RISC机采用寄存器窗口重叠技术,程序嵌套时不必将寄存器内容保存到存储器中,加快了速度。
同CISC比较,RISC的优点
(3) 设计容易,可降低成本,提高可靠性。
(4) 能有效支持高级语言程序
RISC靠编译程序的优化来支持高级语言程序。
指令少,寻址方式少,反而使编译程序容易选择更有效的指令和寻址方式。
通用寄存器多,可尽量安排快速的寄存器操作,使编译程序的代码优化效率较高。
有的RISC机采用寄存器窗口重叠技术,使过程间的参数传送快,且不必保存与恢复现场,因而能直接支持调用子程序和过程的高级语言程序。
在编译时尽量做好程序优化工作,而减少程序执行时间
五、指令系统举例
1、Pentium 指令系统
指令类型
(1)算术逻辑操作指令
(2)串操作/转移控制指令
(3)标志控制/高级语言支持指令
(4)数据传送指令
(5)系统控制/段寄存器操作指令
(6)保护/CACHE管理指令
Pentium 的指令格式
2、模型机上8位字长的指令系统设计
① 模型机指令格式
格式1:一般指令格式
格式2:带寻址方式码的指令格式
OP1:第一指令操作码,
2位,是带寻址方式码
的指令(4条)的特征位。
MOD:寻址方式码,2位,用于对4种寻址方式的编码,至于4种寻址方式的定义,可以自行设计,例如:可设计为直接、间接、变址、相对寻址。
OP2:第二指令操作码,2位,是4条带寻址方式码的指令本身的编码。
DR:同格式一。
ADDR/DISP/X:指令的第二个字,为寻址方式中所用到的直接/间接地址ADDR,或者是相对寻址的偏移量DISP,或者是变址寻址的形式地址X
带寻址方式MOD的指令格式(格式2)
对于指令格式2,假设定义:
MOD=00:直接寻址,则有效地址EA=ADDR,操作数=(ADDR);
MOD=01:间接寻址,则有效地址EA=(ADDR),操作数=((ADDR));
MOD=10:变址寻址,则有效地址EA=(SI)+X,操作数=((SI)+X);其中SI为变址寄存器,隐含为R2;
MOD=11:相对寻址,则有效地址EA=(PC)+DISP,操作数=((PC)+DISP);
格式3:三字指令
格式4:操作码扩展指令格式
OP——指令操作码,4位,是单寄存器地址指令(16条)的操作码,可通过I7 I6为11方式实现散转。
② 模型机寻址方式
模型机的指令系统,可实现:寄存器直接、寄存器间接、直接、间接、相对、变址、立即数7种基本寻址方式。
对于其中相对复杂的寻址方式(直接、间接、相对、变址),可以由指令中的MOD字段来定义。
简单的寻址方式可以直接由指令操作码指定。
注意:任何一种寻址方式,均可以直接由指令操作码隐含指定。
用户也可以根据需要,自行设计一些特殊的寻址方式,例如相对SR的偏移量寻址方法,即EA=(SR)+ADDR。
③ 模型机指令系统设计
指令设计原则
指令的格式必须按照规定的格式设计,即操作码OP、源寄存器号SR、目的寄存器号DR必须按格式规定固定长度和位置,若按照格式2设计指令,则操作码OP分为两段。
寻址方式的设计,可以根据需要,由MOD字段定义,或由操作码隐含指定。
指令类型及功能的设计,只需满足程序设计的要求和需求即可。
指令操作码的分配设计,要注意规整性。
模型机指令设计举例1
模型机指令设计举例2
指令系统1举例
不用专门的MOD字段指出寻址方式,寻址方式由指令码定义(隐含)。
4. IN Rd,[Addr];
(Port Addr)Rd
指令系统2举例
共有16条指令,分为:
5条双寄存器算术逻辑运算类指令
3条单寄存器指令
4条存储器访问类指令
2条I/O指令
2条过程控制类指令
程序设计
5条双寄存器算术逻辑运算类指令
格式:
操作码及功能:
3条单寄存器指令
格式:
操作码及功能:
4条存储器访问类指令
格式:
操作码及功能:
SI隐含为R2
2条I/O指令
格式:
操作码及功能:
2条过程控制类指令
格式:
CALL ADDR
功能:
(SP)-1→SP,
(PC) →(SP),
ADDR→PC
将存储器单元20H开始的10个数累加,将和送到2AH单元中,要求按“指令系统二”编程。
本章小结
机器指令由操作码字段和地址码字段组成。扩展操作码技术实现指令优化,但也增加了硬件设计难度。
指令的寻址方式包括指令寻址和数据寻址,指令寻址主要是顺序和跳跃两种方式;数据寻址有许多种寻址方式,其目的是获得本条指令执行所需要的操作数。
根据指令的功能,可将指令分类为数据传送、算术逻辑运算类、移位操作类、转移类、堆栈操作类、输入输出类等指令。
指令系统的设计应满足完备性、有效性、规整性、兼容性四个方面的要求。CISC指令系统庞大的指令集及其存在问题,RISC指令以它简洁、高效等特点而得到快速地发展。
通过两种指令系统例子,细述了模型机指令系统设计方法,以便结合实际理解和掌握指令系统的设计方法。北京大学出版社课件怎么PPT:这是北京大学出版社课件怎么PPT,包括了最重要的地方——图书馆,吃货的福利——食堂,北京大学并无校训
ppt杜克大学:这是ppt杜克大学,包括了什么是生活,明天比今天更重要,获得满足感,不要轻易说“不”,挑战自我,别害怕不确定性,回顾过去的经历,受到教育不等于聪明等内容,欢迎点击下载。
介绍墨尔本大学ppt:这是介绍墨尔本大学ppt,包括了澳大利亚,城市概况,学校简介,历史沿革,特色优势,优秀学院,本科课程,学费,就业等内容,欢迎点击下载。