计算机组成原理[袁风]chap5.ppt
《计算机组成原理[袁风]chap5.ppt》由会员分享,可在线阅读,更多相关《计算机组成原理[袁风]chap5.ppt(63页珍藏版)》请在三一办公上搜索。
1、1,第5章 指令系统,南京大学计算机系多媒体技术研究所袁春风,南京大学计算机系 多媒体技术研究所 袁春风,2,第5章 指令系统,机器指令特征操作数类型和存储方式操作类型汇编语言地址码编码(寻址方式)操作码编码指令集的设计指令格式举例,南京大学计算机系 多媒体技术研究所 袁春风,3,指令系统的位置,指令系统处在软件和硬件交界面上,能同时被硬件设计者和系统程序员看到。从设计者角度看,指令系统为CPU提供了功能需求;从系统程序员角度来看,指令系统提供的功能就是他所能使用的全部功能。,南京大学计算机系 多媒体技术研究所 袁春风,4,5.1 机器指令特征,1.一条指令须包含的信息 一条指令必须明显或隐含
2、地包含以下信息:操作码:指定操作类型(操作码长度:固定可变)源操作数参照:一个或多个源操作数所在的地址(操作数来源:主(虚)存/寄存器/I/O端口/指令本身)结果值参照:产生的结果存放何处(结果地址:主(虚)存/寄存器/I/O端口)下一条指令地址:下条指令存放何处(下条指令地址:主(虚)存)(正常情况隐含在PC中,改变顺序时由指令给出),南京大学计算机系 多媒体技术研究所 袁春风,5,5.1 机器指令特征,2.地址码字段的个数 据上述分析知,一条指令包含个操作码和多个地址码零地址指令(1)无需操作数如:空操作停机等(2)所需操作数为默认的如:堆栈累加器等形式:一地址指令其地址既是操作数的地址,
3、也是结果的地址(1)单目运算如:取反取负等(2)另一操作数为默认的如:累加器等形式:,OP,OP,A1,南京大学计算机系 多媒体技术研究所 袁春风,6,2.地址码字段的个数(续)据上述分析知,一条指令包含个操作码和多个地址码二地址指令(最常用)分别存放双目运算中两个操作数,并将其中一个地址作为结果的地址。形式:三地址指令分别作为双目运算中两个源操作数的地址和一个结果的地址。形式:多地址指令大中型机中用于成批数据处理的指令,如:向量/矩阵等,A1,OP,A2,5.1 机器指令特征,南京大学计算机系 多媒体技术研究所 袁春风,7,5.1 机器指令特征,3 指令格式 指令格式的选择应遵循的几条基本原
4、则:应尽量短要有足够的操作码位数指令字长应是字节的整数倍合理地选择地址字段的个数 与指令集设计相关的重要方面操作码的全部组成:操作码个数/种类/复杂度数据类型:对哪几种数据类型完成操作指令格式:指令长度/地址码个数/各字段长度寄存器:寄存器的个数/功能/长度寻址方式:操作数地址的指定方式,南京大学计算机系 多媒体技术研究所 袁春风,8,5.2 操作数类型和存储方式,操作数是指令处理的对象,其基本类型有:地址 被看成无符号整数,用来参加运算以确定主(虚)存地址数值数据 定点数(整数):一般用二进制补码表示 浮点数(实数):大多数机器采用IEEE754标准 十进制数:一般用NBCD码表示,压缩/非
5、压缩字符串 用来表示文本、声音和图象等逻辑(布尔)数据按位操作(0-假1-真)Pentium的数据类型,南京大学计算机系 多媒体技术研究所 袁春风,9,5.3 操作类型,按操作功能分为以下几种:数据传送算术运算逻辑运算字符串处理输入/输出操作程序流控制系统控制,南京大学计算机系 多媒体技术研究所 袁春风,10,5.3 操作类型,数据传送(MOV,STOR/LOAD,PUSH/POP,SET/CLR等)指令中需给出的信息:传送源:内(虚)存/寄存器/栈顶传送目的地:内(虚)存/寄存器/栈顶传送数据的个数:每个操作数的寻址方式CPU必须完成的动作:在寄存器之间传送,则仅CPU内部操作在寄存器和主(
6、虚)存或主(虚)存之间传送,则:(1)由寻址方式计算存储器地址(2)若地址为虚址,则要转换成内存物理地址(3)在cache中查找,若无,则再在主存中查找,南京大学计算机系 多媒体技术研究所 袁春风,11,5.3 操作类型,算术运算(ADD/SUB/MUL/DIV/INC/DEC等)指令加工的数据:带符号的定点数浮点数压缩十进制数操作数个数和来源:单/双源操作数:内(虚)存/寄存器/栈顶CPU必须完成的动作:在寄存器和ALU之间传送在ALU中进行相应的运算(加/减/乘/除/取负/增1/减1等)从主(虚)存取数或将结果送主(虚)存保存改变机器状态并产生条件码(零/负/溢出/进位等),南京大学计算机
7、系 多媒体技术研究所 袁春风,12,5.3 操作类型,逻辑运算(AND/OR/XOR/SHL/SHR等)指令加工的数据:逻辑数据操作数个数和来源:单/双源操作数:内(虚)存/寄存器/栈顶CPU必须完成的动作:在寄存器和ALU之间传送在ALU中进行相应的运算 如:与/或/非/异或/逻辑移位/循环移位等从主(虚)存取数或将结果送主(虚)存保存,南京大学计算机系 多媒体技术研究所 袁春风,13,5.3 操作类型,字符串处理指令加工的数据:字符串(一个连续字节序列)-内(虚)存/寄存器/栈顶首地址+字节个数操作类型:传送/传送转换/比较/扫描/跨越/定位/匹配子串等CPU必须完成的动作:在寄存器和AL
8、U之间传送在ALU中进行相应的运算(比较)从主(虚)存取数或将结果送主(虚)存保存 根据比较结果产生条件码,南京大学计算机系 多媒体技术研究所 袁春风,14,5.3 操作类型,输入输出操作 若计算机的输入输出空间和主存统一编址(存储映射编址)的话,就不需要专门的输入输出指令。指令功能:用于启动外设、测试外设的状态、读写外设的数据操作数个数和来源:内(虚)存/寄存器(首地址+字节个数)CPU必须完成的动作:从外设端口取数或将结果送外设端口保存,南京大学计算机系 多媒体技术研究所 袁春风,15,5.3 操作类型,系统控制 系统控制指令用于改变计算机的工作状态,如,改变执行的特权、进入特殊的处理程序
9、等。它常用于在操作系统中对系统资源的访问进行控制,这些资源对应用程序员是透明的。这种指令只有在系统管理状态下才能执行。有时称为管态(访管、特权)指令。,南京大学计算机系 多媒体技术研究所 袁春风,16,5.3 操作类型,程序流控制 前面所述的指令都不明显地给出下一条指令的地址。而总是约定随后的指令为下一条。程序流控制指令通过在指令中明显给出下条指令的地址或约定跳过下条指令来改变指令执行顺序。三类控制指令:转移(分支)跳步子程序调用CPU必须完成的动作:对某些标志(条件码)进行判断,根据条件转移根据寻址方式计算下条指令地址并送PC 对于子程序调用指令,还要保存返回地址到栈顶,南京大学计算机系 多
10、媒体技术研究所 袁春风,17,5.4 汇编语言,指令的表示内部表示 在机器内部,指令用一个位串表示,由多个字段构成。这种直接的二进制位串表示规则,称为机器语言。通过把它读到指令寄存器IR中译码解释,能被机器直接理解 并执行。符号表示 机器语言表示的指令可读性差,编程人员一般将指令的操作码和地址码用助记符来表示。所有助记符的集合及使用规则构成的一个程序设计语言,称为汇编语言,是一种机器指令符号表示法。它不能被机器直接理解,需用专门的程序完成它到机器语言的转换。这个转换程序称为汇编程序。,南京大学计算机系 多媒体技术研究所 袁春风,18,计算机语言的级别,MOV AX,BXMOV CX,BX+1M
11、OV BX,CXMOV BX+1,AX,南京大学计算机系 多媒体技术研究所 袁春风,19,5.5 寻址方式,什么是“寻址方式”?指操作数的参照方式。即:用来指定操作数所在位置的方法。地址码编码由操作数的寻址方式决定。地址码编码原则:指令地址字段的长度直接影响指令的长度。因此指令地址码要尽量短,但操作数的存放位置又必须灵活,空间也应尽量大。所以,机器应能提供灵活的寻址方式,并使用尽量短的地址码访问尽可能大的寻址空间。,南京大学计算机系 多媒体技术研究所 袁春风,20,5.5 寻址方式,指令的寻址-简单正常:PC增值跳转:操作数寻址操作数的寻址-复杂操作数来源:寄存器/主(虚)存/外设端口/栈顶操
12、作数结构:位/字节/半字/字/双字/一维表/二维表/通常寻址方式特指“操作数的寻址”,南京大学计算机系 多媒体技术研究所 袁春风,21,寻址方式的确定(1)在操作码中给定寻址方式(2)专门的寻址方式位有效地址的含义用于存放操作数的寄存器的编号或主存地址(无虚拟存储器的系统)或虚存地址(有虚拟存储器的系统)基本寻址方式 立即/直接/间接/寄存器/寄存器间接/偏移/堆栈基本寻址方式的算法及优缺点假设:A=地址字段值,EA=有效地址(X)=地址X中的内容,5.5 寻址方式,南京大学计算机系 多媒体技术研究所 袁春风,22,基本寻址方式的算法和优缺点,方式 算法 主要优点 主要缺点立即 操作数=A 无
13、存储器访问 操作数幅值有限直接 EA=A 简单 地址范围有限间接 EA=(A)地址范围大 多次存储器访问寄存器 EA=R 无存储器访问 地址范围有限 寄间接 EA=(R)地址范围大 额外存储器访问偏移 EA=A+(R)灵活 复杂堆栈 EA=栈顶 无存储器参照 应用有限偏移方式:将直接方式和寄存器间接方式结合起来。有:相对/基址/变址三种,南京大学计算机系 多媒体技术研究所 袁春风,23,寻址方式示例,(d)堆栈,操作数,栈顶,隐含,南京大学计算机系 多媒体技术研究所 袁春风,24,寻址方式示例,R,(f)寄存器间接,存储器,操作数,寄存器组,南京大学计算机系 多媒体技术研究所 袁春风,25,寻
14、址方式示例,R,(g)偏移,存储器,操作数,寄存器组,A,+,A,南京大学计算机系 多媒体技术研究所 袁春风,26,偏移寻址方式,相对寻址指令地址码给出一个偏移量(带符号数),基准地址隐含由PC给出。即:EA=(PC)+A作用:实现程序(公共子程序)的浮动。基址寻址指令地址码给出一个偏移量(无符号数),基准地址明显或隐含由基址寄存器B给出。即:EA=(B)+A作用:实现多道程序重定位。变址寻址指令地址码给出一个基准地址,而偏移量(无符号数)明显或隐含由变址寄存器I给出。即:EA=(I)+A作用:为重复操作的完成提供一种高效的机制。例如可实现对线形表的方便操作。,南京大学计算机系 多媒体技术研究
15、所 袁春风,27,相对寻址的作用-公共子程序的浮动,南京大学计算机系 多媒体技术研究所 袁春风,28,基址寻址的作用-程序重定位,每个用户程序装入系统后都有一个基址,基址寻址的操作数在相对于基址的偏移单元中,所以虽偏移都是51,但操作数不同。,ADD AX,#51,150,50,51,120,ADD AX,#51,120,151,SUB AX,#51,40,51,130,SUB AX,#51,240,251,130,用户程序1,用户程序2,100,200,南京大学计算机系 多媒体技术研究所 袁春风,29,变址寻址的作用,自动变址 EA=(I)+A I=(I)1 在没有硬堆栈的情况下,用它来建立
16、软堆栈。也能 提供对线性表的方便访问。变址与间址结合前置变址(先变址后间址)EA=(I)+A)后置变址(先间址后变址)EA=(I)+(A),A=100,0,变址器I,A0,A1,A3,A4,南京大学计算机系 多媒体技术研究所 袁春风,30,5.5 寻址方式,位、字节和块的寻址位寻址 当需要对寄存器或内(虚)存中单独一位进行操作(如:置位/复位/测试等)时,需要进行位寻址。指令中必须隐含或明显地给出位指针。字节寻址当操作数为一个字节时,指令必须对字节进行定位。字节编址时,指令须给出访问的是字节/半字/字/双字字编址时,指令须给出是否为字节访问,并指出是哪个字节。块寻址当需对一个信息块进行操作时,
17、指令必须对块定位。指令须给出:首址+长度/首址+末址/首址+末端标志,南京大学计算机系 多媒体技术研究所 袁春风,31,奔腾机的寻址方式,操作数的来源:寻址方式立即数(立即寻址):直接来自指令寄存器(寄存器寻址):来自32位/16位/8位通用寄存器存储单元(其他寻址):需进行地址转换 虚拟地址=线性地址LA(=内存地址)分段 分页(1)段寄存器SR隐含或显式给出(2)8/16/32位偏移量A显式给出(2)基址寄存器B明显给出,任意通用寄存器皆可(3)变址寄存器I明显给出,除ESP外的任意通用寄存器皆可。有比例变址和非比例变址。比例变址时要乘以比例因子S(1:8位/2:16位/4:32位/8:6
18、4位)地址转换机制 虚拟地址=线性地址LA(分段),南京大学计算机系 多媒体技术研究所 袁春风,32,Pentium处理器寻址方式,方式,算法,立即(地址码本身为操作数)寄存器(通用寄存器的内容为操作数)偏移量(地址码给出8/16/32位偏移量)基址(地址码给出基址器编号)基址带偏移量(一维表访问)比例变址带偏移量(一维表访问)基址带变址和偏移量(二维表访问)基址带比例变址和偏移量(二维表访问)相对(给出下一指令的地址,转移控制),操作数=A操作数=(R)LA=(SR)+ALA=(SR)+(B)LA=(SR)+(B)+ALA=(SR)+(I)xS+ALA=(SR)+(B)+(I)+ALA=(S
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 袁风 计算机 组成 原理 chap5
链接地址:https://www.31ppt.com/p-2270984.html