《第4章指令系统.ppt》由会员分享,可在线阅读,更多相关《第4章指令系统.ppt(82页珍藏版)》请在优知文库上搜索。
1、第4章 指令系统1第4章 指令系统4.1 指令格式4.2 寻址方式4.3 指令类型4.4 复杂指令系统计算机和精简指令系统计算机4.5 指令系统举例第4章 指令系统24.1 指令格式4.1.1 指令四要素4.1.2 指令的地址数目4.1.3 指令的操作码4.1.4 指令长度第4章 指令系统34.1.1 指令四要素1)操作码表征指令的操作特性与功能。n 2n2)源操作数地址通过该地址取得所需的操作数。来源:寄存器组、主存或虚存、I/O设备3)目的操作数地址指出指令的操作结果被存放的地方。4)下一条指令的地址顺序执行:隐含(PC)+1 PC改变执行顺序:显式指出第4章 指令系统44.1.2 指令的
2、地址数目n根据地址码部分所给出地址的个数可分为:零地址指令、一地址指令、二地址指令、三地址指令、多地址指令1)零地址指令只有操作码,而没有地址码无需任何操作数操作数是隐含的操作码第4章 指令系统52)一地址指令单操作数指令隐含第二操作数,如:()()第4章 指令系统63)二地址指令双操作数指令()()()进一步分类为 MM RR RM第4章 指令系统74)三地址指令 ()()5)多地址指令用于处理成批数据第4章 指令系统84.1.3 指令的操作码1)指令操作码的两种编码方式定长编码(固定格式)操作码长度固定,且集中放在指令字的一个字段中。变长编码(可变格式)操作码的长度可变,且分散地放在指令字
3、的不同字段中。第4章 指令系统92)可变格式指令的扩展技术指令字中用一个固定长度的字段表示基本操作码,对于不需要某个地址码的指令,可将操作码扩充到地址码字段。例如:某机器的指令长度为16位,其中4位基本操作码字段,3个4位地址码字段,采用操作码扩展技术可以形成多于16条指令。第4章 指令系统10一种扩展方法如下:15条三地址指令,操作码 0000111015条二地址指令,操作码 11110000 1111111015条一地址指令,操作码 111111110000 11111111111016条一地址指令,操作码 11111111111100001111111111111111 共61条第4章
4、指令系统11例题:假设某计算机指令长度为20位,具有二地址指令、一地址指令、零地址指令三类指令形式,在此情况下,这台计算机地址规定用6位表示,问:(1)若操作码字段固定为8位,现已设计出m条二地址指令,n条零地址指令,在此情况下,这台计算机最多可以设计出多少条一地址指令?(2)当二地址指令条数取最大值,且此基础上一地址指令条数也取最大值时,计算这台计算机最多指令数是多少?第4章 指令系统12答:(1)由于操作码的位数决定了指令系统的规模及指令的性质。所以一地址指令的条数:28-m-n=256-m-n(2)应为255+63+64=382条。第4章 指令系统134.1.4 指令长度1)指令长度与机
5、器字长的关系机器字长是指计算机能直接处理的二进制数据的位数,它决定了计算机的运算精度。指令长度一条指令中包含二进制代码的位数。单字长指令、半字长指令、双字长指令使用多字长指令的目的提供足够的地址位来解决访问主存任何单元的寻址问题。第4章 指令系统142)等长指令字结构、变长指令字结构等长指令字结构所有指令的长度都是相等的。指令字结构简单,指令译码和流水线执行较容易。变长指令字结构指令字长度随指令功能而异。指令字结构灵活,能缩短指令的平均长度,但指令的控制较复杂。第4章 指令系统154.2 寻址方式n形成操作数或指令地址的方式,称为寻址方式。n寻址方式分为两类指令寻址方式操作数寻址方式n指令寻址
6、方式顺序寻址方式跳跃寻址方式第4章 指令系统16n操作数的寻址方式指令中地址码字段一般是由形式地址和寻址方式特征位(或字段)组成,并不是操作数的有效地址(实际地址)。所谓操作数的寻址方式,就是形成操作数的有效地址(EA)的方法。第4章 指令系统17n确定一台计算机系统的寻址方式,必须综合考虑以下几点:指令内包含的地址尽量短,以缩短指令长度能访问尽可能大的存储空间寻址方法尽可能简单,简化硬件设计在不改变指令的情况下,改变地址的实际值,从而方便地访问数组、串、表格等复杂数据。第4章 指令系统184.2.1 常用的基本寻址方式1)立即寻址指令的地址字段指出的是操作数本身。立即寻址方式的特点:指令执行
7、速度快;在执行过程,操作数不能修改。EA=(PC)OP M:立即寻址IMME第4章 指令系统19指令的地址码部分直接给出操作数在存储器中的地址(有效地址)。有效地址EA=A直接寻址方式的特点简单直观,便于硬件实现;要寻址大容量的主存空间,将造成指令长度加长。2)直接寻址 操作数主存AOP M:直接寻址A第4章 指令系统203)间接寻址指令中的地址码部分给出一个指示操作数有效地址的地址指示字;通过地址指示字找到操作数的有效地址,再由有效地址找到操作数。有效地址EA=(A)AEAOP M:间接寻址AEA主存操作数第4章 指令系统21间接寻址方式的特点:非常灵活,当操作数地址需改变时,不必修改指令,
8、只要修改有效地址中的内容即可。一次间接需两次访问主存才能取得操作数,降低了指令执行速度。第4章 指令系统224)寄存器寻址方式操作数存放在CPU的通用寄存器中。指令中地址码部分给出某一通用寄存器的编号。EA=Ri操作数通用寄存器OP M:寄存器寻址Ri 第4章 指令系统235)寄存器间接寻址指令中地址码部分所指定的寄存器中内容是操作数的有效地址。有效地址EA=(Ri)寄存器间接寻址方式的特点只需访问存储器一次即可得到操作数;寄存器给出全字长的地址码,可寻址较大的存储空间。EA通用寄存器操作数主存OP M:寄存器间接寻址 Ri 第4章 指令系统246)相对寻址 程序计数器PC的当前内容加上指令给
9、出的形式地址形成操作数的有效地址。形式地址实际上规定了操作数地址和指令地址的相对位置,这个值称为相对位移量(Disp)。有效地址EA=(PC)+DispPCOP M Disp操作数DispOP M:相对寻址 Disp 第4章 指令系统25相对寻址方式的特点转移地址不是固定的,随着PC值的变化而变化,有利于程序的再定位。位移量一般用补码表示。如果位移量为8位,则寻址范围为(PC)128(PC)+127。第4章 指令系统26例题:若某计算机数据线、地址线均是8bit,有一条相对寻址的无条件转移指令存于主存的20H单元中,指令给出的位移量D=00010101B,设该指令占用2个字节,计算:(1)取该
10、指令时PC的内容;(2)该指令执行结束时PC的内容。第4章 指令系统277)变址寻址指令地址码部分给出的形式地址与指令中指定的变址寄存器的内容相加开成操作数的有效地址。有效地址EA=(RX)+A OP M:变址寻址 RX A 主存操作数X通用寄存器EA 第4章 指令系统288)基址寻址指令地址码部分给出的形式地址与基址寄存器中的内容相加形成操作数的有效地址。有效地址EA=(Rb)+AOP M:基址寻址 Rb A 主存操作数X通用寄存器第4章 指令系统29n基址寻址中基址寄存器提供基准量而指令提供位移量;变址寻址中变址寄存器提供修改量而指令提供基准量。n基址寻址面向系统,用于程序定位和扩大寻址空
11、间;变址寻址面向用户,用于访问数组、向量、字符串等成批数据,以解决程序的循环控制问题。第4章 指令系统304.2.2 复合型寻址方式1)基址变址寻址方式EA=(Rb)+(Rx)+A2)相对间接寻址方式EA=(PC)+A)3)间接相对寻址方式EA=(PC)+(A)4)变址间接寻址方式EA=(Rx)+A)5)间接变址寻址方式EA=(Rx)+(A)第4章 指令系统31例题:一种单地址指令的结构如下图所示:OPIXD其中I为间址特征,X为寻址模式,D为形式地址,设R为通用寄存器,也可作为变址寄存器。在下表中填入适当的寻址方式名称。第4章 指令系统32寻址方式名称IX有效地址E000E=D001E=(P
12、C)+D010E=(R)+D011E=R100E=(D)101E=(PC)+D)110E=(R)+D)111E=(R)第4章 指令系统334.3 指令类型n设计指令系统,应考虑如下原则:完整性有效性 扩充性 兼容性第4章 指令系统34n指令类型(按指令所完成的功能分类)1.数据传送指令2.算术逻辑运算指令3.移位操作指令4.浮点运算指令5.十进制运算指令6.字符串处理指令7.转移类指令8.堆栈操作指令9.输入/输出指令10.其他指令第4章 指令系统351)数据传送指令一般传送指令用来实现主存和寄存器之间、主存和主存、寄存器和寄存器之间的数据传送。数据交换指令数据块传送指令第4章 指令系统362
13、)算术逻辑运算指令(1)算术运算指令 这类指令用于定点数的算术运算如:加、减、乘、除、加1、减1、求补、比较等指令(2)逻辑运算指令与、或、非、异或位操作:测试、清除、置位、求反等算术逻辑运算指令通常根据运算结果设置状态位:Z、S、C、V、P第4章 指令系统373)移位操作指令算术移位(带符号数)逻辑移位(无符号数)循环移位:大循环、小循环双字移位 C第4章 指令系统384)浮点运算指令5)十进制运算指令6)字符串处理指令如:字符串传送、字符串比较、字符串查找、字符串提取、字符串转换等7)转移类指令(1)转移指令无条件转移指令jump条件转移指令branch第4章 指令系统39n转移指令的转移
14、地址一般采用直接寻址的和相对寻址方式来确定。采用直接寻址方式,转移地址由指令地址码部分直接给出。采用相对寻址方式,则称为相对转移,转移地址为当前指令地址(PC的值)和指令地址部分给出的位移量相加。第4章 指令系统40n16种可能采用的转移条件P=1 P=0 Z=1 Z=0S=1 S=0 V=1 V=0 无符号数 带符号数AB C+Z=0 (SV)+Z=0第4章 指令系统41(2)循环控制指令(3)调用指令与返回指令ncall与jump和branch的主要差别是保留返回地址(用堆栈)n保留、恢复寄存器内容的两种方法由调用程序保留、恢复由被调用程序保留、恢复第4章 指令系统428)堆栈及堆栈操作指
15、令堆栈是以“先进后出”(FILO)方式工作的一个存储区。堆栈只有一个出口,即当前栈顶;用堆栈指针寄存器SP指定。压栈操作:栈底栈顶65H56HPUSH AX栈顶12H34H1234H第4章 指令系统43 弹栈的操作POP BX34H12H65H56H栈底1234H栈顶栈顶第4章 指令系统44堆栈的两种生成方式自底向上生成方式(向低地址生长)压栈 PUSH A ;(SP)-1 SP,(A)(SP)弹栈 POP A ;(SP)A,(SP)+1 SP 自顶向下生成方式(向高地址生长)压栈 PUSH A ;(SP)+1 SP,(A)(SP)弹栈 POP A ;(SP)A,(SP)-1 SP第4章 指令
16、系统45堆栈用途在一般结构的计算机中,堆栈主要用于暂存子程序、中断调用时的返回地址和现场以及用于传送参数。通常设置参数指针,利用它访问堆栈不受堆栈的FILO性质的限制在堆栈结构的计算机中(如HP-3000),堆栈作为提供操作数和保存运算结果的主要存储区,大多数指令皆访问堆栈(零地址指令)。第4章 指令系统469)输入/输出(I/O)指令输入输出指令完成主机与外部设备间的信息(数据信息、状态信息、控制信息)传送。通常输入输出指令有三种设置方式专用I/O指令独立编址用通用的数据传送指令实现I/O操作统一编址通过I/O处理机(通道)执行I/O操作第4章 指令系统4710)其他指令控制指令完成某种控制功能的指令,如等待指令、停机指令、空操作指令、开中断、关中断、置条件码指令等 特权指令具有特殊权限的指令。一般保留给操作系统使用。在多用户、多任务的计算机中必须设置。用于系统资源的管理和分配。例如:LLDT、LTR陷阱指令 例如:8086的INT n第4章 指令系统48nCISC 技 术和RISC 技 术 代 表 着 目 前 计 算 机 指 令 系 统 的 两 个 截 然 不 同 的 优 化 方