组成原理课程4.ppt

  1. 1、本文档共57页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 4.4.2 操作数基本寻址方式 2、立即寻址 立即寻址是一种特殊的寻址方式,指令中在操作码字段后面的部分不是通常意义上的操作数地址,而是操作数本身,也就是说数据就包含在指令中,只要取出指令,就取出了可以立即使用的操作数,因此,这样的操作数被称为立即数。 指令格式:操作码OP? 操作数A * 4.4.2 操作数基本寻址方式 3、直接寻址 ?指令中地址码字段给出的地址A就是操作数的有效地址EA(Effective Address),即EA=A。 * 4.4.2 操作数基本寻址方式 4、间接寻址 ?间接寻址意味着指令的地址码部分给出的地址A不是操作数的地址,而是存放操作数地址的主存单元的地址,简称操作数地址的地址。操作数的有效地址的计算公式为:EA=(A) * 4.4.2 操作数基本寻址方式 5、寄存器寻址 在指令的地址码部分给出CPU内某一通用寄存器的编号,指令的操作数存放在相应的寄存器中,即EA=Ri 优点: (1)由于寄存器在CPU的内部,指令在执行时从寄存器中取操作数比访问主存要快得多; (2)由于寄存器的数量较少,因此寄存器编号所占位数也较少,从而可以有效减少指令的地址码字段的长度。 * 4.4.2 操作数基本寻址方式 6、寄存器间接寻址? 为了克服间接寻址中多次访存的缺点,可采用寄存器间接寻址,即将操作数放在主存储器中,而操作数的地址放在某一通用寄存器中,然后在指令的地址码部分给出该通用寄存器的编号,这时有EA=(Ri) 这种寻址方式的指令较短,并且在取指后只需一次访存便可得到操作数,因此指令执行速度较前述的间接寻址方式要快,也是目前在计算机中使用较为广泛的一种寻址方式。 * 4.4.2 操作数基本寻址方式 7、偏移寻址 相对寻址:由程序计数器PC提供基准地址,而指令的地址码部分给出相对的位移量D,两者相加后作为操作数的有效地址,即:EA=(PC)+D。 * 4.4.2 操作数基本寻址方式 7、偏移寻址:基址寻址 基址寄存器的位数可以设置得很长,从而可以在较大的存储空间中寻址。 * 4.4.2 操作数基本寻址方式 7、偏移寻址:变址寻址 变址寻址就是将指令的地址码部分给出的基准地址A与CPU内某特定的变址寄存器Rx中的内容相加,以形成操作数的有效地址。 * 4.4.2 操作数基本寻址方式 8、段寻址方式 存储空间划分为多段 * 4.4.2 操作数基本寻址方式 分寄存器堆栈、存储器堆栈 以先进后出原理存储数据 * 4.4.2 操作数基本寻址方式 例4.4:将ARM汇编语言翻译成机器语言。已知5条ARM指令格式译码如下表所示:   设r3寄存器中保存数组A的基值,h放在寄存器r2中。C语言程序语句 A[30]=h+A[30] 可编译成如下3条汇编语句指令:   LDR r5 , [r3, #120]   ;寄存器r5中获得A[30]   ADD r5 , r2 , r5 ,   ;寄存器r5中获得h+A[30]   STR r5 , [r3, #120]   ;将h+A[30]存入到A[30]  请问这3条汇编语言指令的机器语言是什么? * 4.4.2 操作数基本寻址方式 解:首先利用十进制数来表示机器语言指令,然后转换成二进制机器指令。从表4.3中我们可以确定3条机器语言指令:   LDR指令在第3字段(opcond)用操作码24确定。基值寄存器3指定在第4字段(Rn),目的寄存器5指定在第6字段(Rd),选择A[30](120=30×4)的offset字段放在最后一个字段(offset12)。   ADD指令在第4字段(opcode)用操作码4确定。3个寄存器操作(2、5和5)分别被指定在第6、7、8字段。   STR指令在第3字段用操作码25确定,其余部分与LDR指令相同。 * 4.4.3 寻址方式举例 Pentium的寻址方式 CAI * 4.4.3 寻址方式举例 方式 算法 立即 作数=A 寄存器 LA=R 偏移量 LA=(SR)+A 基址 ?LA=(SR)+(B) 基址带偏移量 LA=(SR)+(B)+A 比例变址带偏移量 LA=(SR)+(I)×S+A 基址带变址和偏移量 LA=(SR)+(B)+(I)+A 基址带比例变址和偏移量 LA=(SR)+(B)+(I)×S+A 相对 LA=(PC)+A Pentium的寻址方式 * 4.4.3 寻址方式举例 [例4] 一种二地址RS型指令的结构如下: 6位 4位 1位 2位 16位 OP 通用寄存器 I X 偏移量D  其中I为间接寻址标志位,X为寻址模式字段

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档