chapter2-2寻址方式 计算机体系结构教材.pptVIP

chapter2-2寻址方式 计算机体系结构教材.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
chapter2-2寻址方式 计算机体系结构教材.ppt

1 §2-2 寻址方式 寻址方式:是指令按什么方式寻找(访问)到所需的操作数或信息的。 1 寻址方式分析 2 寻址方式在指令中的指明 3 程序在主存中的定位技术 4 物理主存中信息的存储分布 2 1 寻址方式分析 大多数计算机都将主存、通用寄存器、堆栈分类编址,因此就有分别面向寄存器、堆栈和主存的寻址方式。 面向主存:主要访问内存,少量访问寄存器 面向通用寄存器:多数在寄存器,少量在内存 面向堆栈:主要在堆栈,可减轻编译负担 3 寻址方式(又称编址方式)指的是确定本条指令的操作数或操作数地址,或确定下一条要执行指令的指令地址的方法。 不同的计算机系统,使用数目和功能不同的寻址方式,其实现的复杂程度和运行性能各不相同。有的计算机寻址方式较少,而有些计算机采用多种寻址方式。通常需要在指令中为每一个操作数专设一个地址字段,用来表示数据的来源或去向的地址。在指令中给出的操作数的地址被称为形式地址,使用形式地址信息并按一定的规则计算出来的一个数值才是数据(或指令)的实际地址。 可能存放操作数的存储结构: –①CPU中的寄存器(编号) –②主存储器 –③堆栈 –④外存储器 –⑤外设端口(接口中CPU可直接访问的寄存器) 寻址方式的种类(选讲介绍) 4 操作数出现在指令中或紧跟指令之后。 Num 即为操作数的值。 适用于操作数固定的情况,提高了指令的执行速度,当该立即数的值限定为较小值(占用位数少)时,可在第一个指令字中直接给出(定长指令字),否则可在第二个指令字中给出(变长指令字)。 立即数寻址 5 (1)寄存器直接寻址方式:操作数在指定寄存器中,指令中给出寄存器号。 直接寻址 例:RegNo.=5,使用5# 累加器,此时5# 累加器中的内容为7,可记为(R5)=7,对寄存器寻址方式,操作数就是这里的数值7。 8 (2)存储器间址方式:指令的地址码字段给出的内容既不是操作数,也不是操作数的地址,而是操作数(或指令)地址的地址。 多一次读内存储器的操作。 指令中的 Addr 可以用其他寻址方式给出,例如变址寻址,这就成为变址寻址与间接寻址的复合寻址方式。 9 操作数的地址由指定的变址寄存器(由Reg指定)的内容和指令中的地址码(Disp)相加得到存储操作操作数的主存地址。 变址寻址 例:Disp=18H,Reg=5,(R5)=5700H 则操作数地址 = 5718H 便于对数组元素进行处理,是计算机中常用的一种寻址方式。 10 操作数(或指令)的地址由程序计数器 PC 的内容(即当前执行指令的地址)和指令的地址码(位移量,可正可负)相加得到。得到操作数有效地址,或是程序转移地址。 相对寻址(偏移寻址) 例:Disp = 48H (PC) = 5600H 则实际地址 = 5648H 1).主要用于转移指令,对浮动程序很有用。 2).位移量可正可负,通常用补码表示。 11 在计算机中设置一个专用的基址寄存器,通过基址寄存器的内容和指令中的位移量相加得到操作数(或指令)的地址。 基址寻址 例:Disp= 18H,[BS]= 5700H 则操作数地址=5718H 主要用于为程序或数据分配存储区,对多道程序或浮动程序很有用,解决了程序在存储器中的定位和扩大寻址空间等问题。 12 堆栈是内存储器中一块按 “后进先出” 原则进行读写的存储区,并通过一个专用的寄存器(称为堆栈指针SP)给出堆栈的栈顶(和次栈顶)地址完成数据的读写操作,故不必在指令中用操作数地址字段给出堆栈地址。通常在读写操作的前后伴随有计算机自动(不是用户通过指令)修改 SP 内容的动作,以确保按正确的 “后进先出” 原则读写堆栈区。 例如:(SP)- 1  SP和 AR,即SP的内容减 1 存回 SP,并送内存地址寄存器,接下来才可以把数据写到堆栈中。完成一次读堆栈操作后,要接着执行(SP)+ 1  SP 的一次自动修改 SP 内容的操作。 堆栈寻址 需要注意的是,指令长度可能是一个字,也可能是两个字或多个字,要看操作数地址字段的位数要求,由具体的情况决定。 13 寻址方式使用情况统计结果 例1:在VAX指令集机器上运行gcc、Spice和Tex基准程序,各种寻址方式的分布如下图: 立即值寻址方式和偏移寻址方式的使用频率十分高。 14 各种偏移量字段大小的使用情况 例2:在某R-R机器上运行SPECint92和SPECfp92进行测试,结果分布如下: 15 各种偏移量字段大小的使用情况(续) 程序所使用的偏移量大小分布十分广泛; 较小的偏移量和较大的偏移量均占有相当大的比例; 将偏移量字段的大小设置为12~16位。这种长度可以支持上述75%~99%基于偏移寻址方式的数据访问中偏移量大小

您可能关注的文档

文档评论(0)

yuzongxu123 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档