- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
5.4寻址*间接寻址(indirect):操作数在指令所指定地址的地址当中movax,[bx]addix寄存器变址寻址(Indexed直接):用一个寄存器(隐含或者明确地)存储一个偏移地址,该偏址与操作数地址相加得到操作数的有效地址,便于批量数据传送movax,value1[si]//[si]变化5.4寻址*基址变址寻址(Based间接):使用基址寄存器+变址寄存器movax,[bx][si]//[si]变化堆栈寻址(stack):操作数假定在堆栈中pushxpushyadd5.4寻址*以上寻址模式还有许多变种:间接变址寻址(Indirectindexed)基址/偏址寻址(Base/offset)自相对寻址(Self-relative)自增(减)寻址(Autoincrement–decrement)不做进一步讨论5.4寻址*举例说明:不同寻址模式下得到的操作数是什么?5.4寻址*答案:5.4寻址*练习:p157:135.4寻址*1400100010001300答案:5.5指令流水线*logo什么是指令流水线?某些CPU在执行指令时把取指、译码、执行的循环过程细分成若干个小步骤并行进行,以提高执行速度,称为指令流水线技术(ILP:Instruction-levelpipelining)5.5指令流水线*取指 译码 计算操作数有效地址取操作数执行指令保存结果假定一个指令周期细分成下列几小步:5.5指令流水线*在每个时钟周期执行一小步,不同小步可在时间上重叠S1.Fetchinstruction. S4.Fetchoperands.S2.Decodeopcode. S5.Execute.S3.Calculateeffective S6.Storeresult.addressofoperands.本章是第4章内容的延伸5.1概述*更为详尽地了解指令格式、操作数类型和寻址方法更为详尽地了解计算机组织结构和指令格式之间的内在关系,从而在概念上更深地理解计算机的组成原理不同处理器设计有不同的指令集,它们在特征上的主要区别:5.2指令格式*01每条指令的比特位数--指令长度02基于堆栈还是基于寄存器03每条指令操作数的个数04操作数类型和长度05操作数的位置06运算类型衡量一套指令集的效能指标包括:5.2指令格式*一个程序占用主存空间大小指令复杂度指令位数(长度)指令总数目设计一套指令集,主要考虑下列因素:5.2指令格式*指令长度长指令、短指令还是可变长度指令1操作数的个数(一般为0,1,2,3)2可利用的寄存器的个数3内存组织结构支持字节访问还是字访问,或者都支持4寻址方式直接、间接、变址55.2指令格式*大端(bigendian)和小端(littleendian)的概念:数据在内存中的保存格式顺着地址增大方向,低字节先存,高字节后存,称为小端结构;反之称为大端结构5.2指令格式*假设保(从高字节到低字节)5.2指令格式*练习:p156:25.2指令格式*答案5.2指令格式*堆栈体系结构累加器体系结构通用寄存器体系结构指令集设计考虑的另一个问题是:CPU内部数据处理方式,有三个选择:01在硬件设计简单、成本、执行速度、方便使用之间取得平衡选择的要点:025.2指令格式*堆栈结构:指令和操作数需要从堆栈中存取,当前指令和操作数隐含在栈顶单元累加器结构:操作数之一隐含在累加器中另一个操作数在内存中,导致较大的内存(总线)访问量通用寄存器结构(GPR):多利用寄存器,较少访问内存比累加器结构快便于编译器编译指令长度较长5.2指令格式*目前多数计算机使用GPR结构,根据指令和操作数所处的位置又分为3种类型:存储器-存储器型:2~3个操作数需要从存储器去取;寄存器-存储器型:至少有一个操作数在寄存器中(Intel,Motorola)装入-存储型:运行前首先把操作数装入寄存器操作数的个数:5.2指令格式*0地址指令(只有操作码)1地址指令(操作码+1个存储器地址)2地址指令(操作码+2个地址)3地址指令(操作码+3个地址)5.2指令格式*0地址指令(堆栈型指令)结构01除了load和store指令需要访问一个内存地址外,其它指令使用的操作数隐含在栈内,例如add,mult指令的两个操作数使用栈顶的
文档评论(0)