- 1、本文档共51页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机组成原理第四章 第4讲 指令和数据及寻址方式
指令和数据的寻址方式 I表示是否间接寻址 I=1表示间接寻址 I=0表示非间接寻址 X寻址模式: 00直接寻址 01相对寻址 10变址寻址 11基址寻址 例题: 某16位机器所使用的指令格式和寻址方式如图所示,该机有两个20位基址寄存器,四个16位变址寄存器,十六个16位通用寄存器。指令汇编格式中的S(源),D(目标)都是通用寄存器,M是主存中的一个单元。三种指令的操作码分别是 MOV(OP)=(A)H, MOV是传送指令, STO(OP)=(1B)H, STO为存数指令, LAD(OP)=(3C)H。 LAD为取数指令。 要求: (1)分析三种指令格式与寻址方式特点。 (2)CPU完成哪一种操作所花时间最短?哪一种操作所花时间最长?第二种指令的执行时间有时会等于第三种指令的执行时间吗? (3)下列情况下每个十六进制指令字分别代表什么操作?其中如果有编码不正确,如何改正才能成为合法指令? ①(F0F1)H (3CD2)H ② (2856)H ③(6FD6)H ④ (1C2)H 解答: (1)第一种指令是单字长二地址指令,RR型;第二种指令是双字长二地址指令,RS型,其中S采用基址寻址或变址寻址,R由源寄存器决定;第三种也是双字长二地址指令,RS型,R由目标寄存器决定,S由20位地址(直接寻址)决定。 (2)处理机完成第一种指令所花的时间最短,因为RR型指令,不需要访问存储器。第二种指令所花的时间最长,因为RS型指令,需要访问存储器。同时要进行寻址方式的变换运算(基址或变址),这也需要时间。第二指令的执行时间不会等于第三种指令,因为第三种指令虽然也访问存储器,但节省了求有效地址运算的时间开销。 * * 4.4 指令和数据的寻址方式 思考问题: 如何获取本指令中指定的操作数? 如何获得下一条指令的地址? 寻址 寻址方式是指CPU根据指令中给出的地址码字段寻找相应的操作对象的方式。 寻址包括两类:指令寻址与操作数寻址 4.4 指令和数据的寻址方式 指令的寻址方式 顺序方式 PC 跳跃方式 标记黄色五星表示此处内容可观看教材配套的CAI动画 4.4 指令和数据的寻址方式 操作数的寻址方式 操作数通常放在哪儿呢? 操作数的可能位置: 指令中; 寄存器; 主存储器中; I/O设备的端口中 4.4 指令和数据的寻址方式 根据操作数放在不同的地方,从而派生各种不同的寻址方式,往往不同的计算机具有不同的寻址方式。 形成操作数有效地址的方法 eg: 如无变址、间址,形式地址(也叫偏移量)就是有效地址 操作码 OP 变址 X 间址 I 形式地址 A 主要有: 相对寻址 基址寻址 变址寻址 相对寻址 基址寻址 变址寻址 段寻址 相对寻址 基址寻址 变址寻址 段寻址 1、隐含寻址 指令中隐含着操作数的地址 Eg.如某些运算(单地址码的指令),隐含了累加器AC作为源和目的寄存器 Eg.如8086汇编中的STC指令,设置标志寄存器的C为1 2、立即寻址 立即寻址 立即数包含在指令中。 指令格式: 2、立即寻址 特点: 高速 操作数不能更改,缺灵活性 eg.程序中对学生分成5组,不能修改 操作数大小受限(为什么?) 常用于: 赋初值 定义常量 3、直接寻址 ?指令中地址码字段给出的地址A就是操作数的有效地址EA(Effective Address),即EA=A,D=(A) 3、直接寻址 特点: 简单快速,便于硬件实现 主存容量的增长引发问题: 指令长度不够用 4、间接寻址 ?寻址过程:如图 操作数的有效地址的计算公式为: EA=(A) D=((A)) 4、间接寻址 特点: 地址在主存储器中,可以被灵活的修改 形参实参,传值、传地址 操作灵活 两次访存增加时间耗费 5、寄存器寻址?? 操作数保存在寄存器中,即 EA=Ri D=(Ri) 5、寄存器寻址 特点: (1) 快。比内存访问快 (2)寄存器数量少: 地址码短 可用空间少 6、寄存器间接寻址?? 操作数放在主存储器中, 而操作数的地址放在某一通用寄存器中 EA=(Ri) D=((Ri)) 6、寄存器间接寻址 这样寻址有何优势: 间接寻址多次访存,寄存器间接寻址减少访存次数 指令中的地址短 使用较为广泛 7、偏移寻址 直接寻址+寄存器间接寻址=偏移寻址 EA= (Ri) + A Ri可能是某个隐含寄存器 7、偏移寻址----相对寻址 由程序计数器PC提供基准地址 指令地址码=偏移量D EA=(PC)+D。 7、偏移寻址----相对寻址 特点: 程序模块内可
文档评论(0)