160 likes | 345 Views
计算机组成原理第五章. 知识点二:寻址方式. 主讲教师:秦磊华. 问题引入. 主存基于地址访问,程序执行过程中, CPU 如何得到指令的地址和将被指令处理数据对象的地址?. 学习建议. 系统观: 本知识点的学习与控制器关联;从程序设计角度看,需深刻理解不同寻址方式的寻址过程,合理选择寻址方式,为编制高性能程序和程序优化奠定基础。 构造观: 掌握指令和数据有效地址的计算方法。. 1. 指令的寻址方式. 1) 顺序寻址 PC 内容变化的流程为 : PC (PC) + ”1” “1” 表示一条指令所占用的主存单元字节。. 2) 跳跃寻址.
E N D
计算机组成原理第五章 知识点二:寻址方式 主讲教师:秦磊华
问题引入 主存基于地址访问,程序执行过程中,CPU如何得到指令的地址和将被指令处理数据对象的地址? 学习建议 系统观:本知识点的学习与控制器关联;从程序设计角度看,需深刻理解不同寻址方式的寻址过程,合理选择寻址方式,为编制高性能程序和程序优化奠定基础。 构造观:掌握指令和数据有效地址的计算方法。
1.指令的寻址方式 1) 顺序寻址 PC内容变化的流程为: PC (PC) + ”1” “1”表示一条指令所占用的主存单元字节。
2) 跳跃寻址 PC内容变化的流程为: PC 转移地址值(条件满足时)。
操作码(OP) 地址码字段(Ad) 2.操作数寻址方式 目的:寻址操作数有效地址(EA表示); 操作数来源基本上有三种情况: (a)直接由指令地址字段提供; (b)由指令地址字段指定的寄存器提供; (c)操作数存放在存储器中。 由于操作数来源多,故有必要设计多种不同的寻址方式。
可从下列四个方面分析每种寻址方式的特点 (a)是否影响指令执行速度; (b)寻址范围是否受地址字段位数的影响; (c)数据或偏移量的大小是否受地址字段位数的影响; (d)是否有利于提高程序设计的灵活性。
操作码(OP) 立即数 1)立即数寻址 • 指令的Ad字段即为操作数; • 随指令一同存放在主存,取指令时一同被被送入CPU内的指令寄存器; • 指令执行时该数已存在于CPU内,不需要再次访问主存,也不需计算有效地址EA; 指令执行速度快,立即数的大小受Ad字段位数的影响; 一般用于赋初值,赋值改变需重复使用指令。
OP Ad 主存 …. 操作数 …. 2)直接寻址 Ad提供操作数的有效地址,即EA=Ad ; 寻址范围受限于Ad位数; 取操作数需访问主存,相对寄存器寻址指令速度慢; 采用直接寻址访问主存单元变化时,需再次使用指令。
OP Ad 主存 …. EA …. 操作数 3)间接寻址 Ad提供操作数主存单元地址的地址 ;EA = (Ad); 有效解决了访存范围受限于Ad字段位数的弊端; 需要访问主存2次(取操作数地址和取操作数),指令执行速度慢。
OP Ad …. Ri …. Rj 4)寄存器寻址 寄存器 Ad提供存放操作数的寄存器编号; 不需要访问主存,指令执行速度快。
OP Ad 寄存器 主存 …. 操作数 …. …. Ri …. 5)寄存器间接寻址 Ad提供寄存器编号 ; EA = (Ri); 能扩展寻址范围,又不增加访问主存的次数。
OP Ad 主存 …. 操作数 …. PC 6)相对寻址 Ad提供偏移值 ; EA = (PC)+ Ad; 便于程序浮动; 取指阶段PC的值会改变,而计算EA是指令执行阶段的任务,故计算EA时的PC值是下一条指令的地址。
例1:某机指令字长16位,内存按字节寻址, 采用相对寻址方式指令的当前地址为2003H, 若希望该指令处理数据的有效地址为200AH,给出该指令中Ad字段的值。 解:相对寻址方式下 EA=(PC)+ Ad Ad = EA - (PC) 题中相对寻址指令的地址为2003H, 根据指令顺序寻址方式,取指后PC= 2003H +2=2005H 故Ad = 200AH – 2005H = 5
OP Ad 主存 …. 操作数 变址寄存器 …. X 7)变址寻址 Ad提供偏移值 ,EA = (X)+ Ad; 通过X值的改变而不是Ad值的改变去改变EA,不需要修改程序即可访问成块数据,极大地方便程序设计; 主要应用于对线性表元素的重复访问。
OP Ad 主存 …. 操作数 基址寄存器 …. B 8)基址寻址 Ad提供变化的位移量,B提供基准量, EA =(B)+ Ad ,正好与变址寻址相反 ; 除解决程序的重定位问题外,基址寻址方式还能扩展寻址空间 。
知识点二 回顾 指令的顺序寻址 a)增量“1”跟指令的字长有关; b)在指令的取指阶段实现PC增量; 指令的跳跃寻址:在指令的执行阶段实现; 操作数寻址。