计算机组成原理笔记——寻址方式、指令格式影响因素

寻址方式
确定本条指令的操作数地址,下一条要执行指令的指令地址

寻址方式:

  • 指令寻址
  • 数据寻址

指令寻址
顺序:(PC)+1->PC
跳跃:由转移指令指出
在这里插入图片描述
数据寻址
指令格式

操作码寻址特征形式地址A

形式地址:指令字中的地址
有效地址:操作数的真实地址
指令字长=存储字长=机器字长

1.立即寻址
形式地址A就是操作数
在这里插入图片描述
指令执行阶段不访存,A的位数限制了立即数的范围

2.直接寻址
EA=A,有效地址由形式地址直接给出
在这里插入图片描述
指令在执行阶段访问一次存储器。A的位数决定了该指令操作数的寻址范围。操作数的地址不易修改(必须修改A)。

3.隐含寻址
操作数隐含在操作码中
在这里插入图片描述
指令字中少了一个地址字段,可缩短指令字长。

4.间接寻址
EA=(A),有效地址由形式地址间接提供
在这里插入图片描述在这里插入图片描述
执行指令阶段两次访存。
可以扩大寻址范围。
可以通过修改EA来修改操作数地址,方便编制程序。

5.寄存器直接寻址

EA=Ri,有效地址就是寄存器编号。
在这里插入图片描述

执行阶段不访存,只访问寄存器,执行速度快。
寄存器个数有限,可以缩短指令字长。

6.寄存器间接寻址
EA=(Ri),有效地址存储在寄存器中,需要访问寄存器获取有效地址,再对有效地址进行访存。
在这里插入图片描述
有效地址存储在寄存器中,操作数在存储器中,执行阶段需要访存。
便于编制循环程序。

7.基址寻址

  • 采用专用寄存器作基址寄存器

EA=(BR)+A,BR为基址寄存器。
在这里插入图片描述
用BR+A可以扩大寻址范围,有利于多道程序。
BR内容由操作系统或管理程序决定,无法更改,要更改地址只能通过修改形式地址A,BR是不可变的。

  • 采用通用寄存器作基址寄存器
    在这里插入图片描述
    可选择BR,由用户指定选择哪个作为基址寄存器。基址寄存器的内容由操作系统决定,故R0不变,A可变。

8.变址寻址
EA=(IX)+A,IX为变址寄存器(专用)。通用寄存器也可以作为变址寄存器。
在这里插入图片描述
同基址寻址,可以扩大寻址范围。
IX由用户给定,可以更改。执行过程中IX可变,A不可变。——与基址寻址对比
便于处理数组问题。

9.相对寻址
EA=(PC)+A,A是相对于当前指令的位移量(可正可负,是补码)。
在这里插入图片描述
PC不可变,由A来决定操作数寻址范围。
程序浮动。
广泛用于转移指令。

10.堆栈寻址
一个先进后出的队列,只有一个出入口。栈顶地址由SP指出。
硬堆栈:多个寄存器
软堆栈:指定的存储空间
进栈:(SP)-1 -> SP
出栈:(SP)+1 -> SP

在这里插入图片描述
设计指令格式时应该考虑的因素
1.指令系统的兼容性
2.其他因素
操作类型:包括指令个数及操作的难易程度
数据类型:确定哪些数据类型可参与操作
指令格式:指令字长是否固定。操作码位数、是否采用扩展操作码计数,地址码位数、地址个数、寻址方式类型
寻址方式:指令寻址、操作数寻址
寄存器个数:寄存器的多少直接影响指令的执行时间。

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值