相对寻址模式和直接寻址模式的区别
admin
2023-07-30 20:21:08
0

寻址模式 在指令循环过程的指令获取操作中,寻址模式起着至关重要的作用。寻址模式是操作数在执行前在指令字中的寻址方式。

1. 相对地址模式:在这种模式下,操作数的有效地址(EA)是由CPU寄存器的内容和指令字的地址部分相加计算出来的。有效地址的计算方法是将位移(指令中给出的即时值)和寄存器的值相加。指令的地址部分通常是一个有符号的数字,可以是正数或负数。这样计算出来的有效地址是相对于下一条指令的地址而言的。

EA=CPU寄存器+位移

相对寻址模式可以进一步划分为三种类型:

  • PC(程序计数器)相对寻址模式。
  • 索引寄存器相对寻址模式或索引寻址模式。
  • 基准寄存器寻址模式。

2. 直接寻址模式: 在直接寻址模式下,操作数的有效地址等于指令的地址部分,即指令的地址部分表示包含操作数的内存位置。例如:ADD R1,4000,其中4000是有效地址。
直接寻址模式在这个例子中,内存位置4000包含操作数100,它被添加到R1的内容中并被存储在R1中。
相对寻址模式和直接寻址模式的区别:

独立于位置的相对寻址模式 直接寻址模式
有效地址的计算是将CPU寄存器的内容与指令的地址部分相加。 获取操作数的地址已经在指令的地址部分提供。它不被计算。
相对模式有三种类型。PC相对模式、索引寄存器相对模式和基数寄存器相对寻址模式。 直接寻址模式没有类型。
它的结果是指令格式中的地址字段较短,因为相对地址可以用少量的比特指定。 直接寻址模式的结果是指令格式中的地址字段较长,因为它需要更多的位来指定整个内存地址。
它经常用于分支型指令,因为它直接更新程序计数器。 直接寻址模式不用于分支类型的指令。
它用于编写可重定位的代码,以及位置无关的代码,即在运行时进行程序重定位。 直接寻址模式被用来访问静态数据。
它用于实现数组寻址和记录。 直接寻址模式用于实现变量。
它用于处理递归程序。直接寻址模式不能处理递归程序。PC相对或基础相对寻址模式比直接寻址模式更受青睐,因为:1、减少程序存储的大小。2、减少指令获取队列的大小。3、重新定位更简单。 与PC相对或基数相对寻址模式相比,它不太适合使用。
优点—灵活 优点—使用简单,因为在引用内存时不涉及中间人。
缺点 – 复杂 缺点 – 地址空间限制
应用- 它有助于运行时的程序重新定位和指令序列的修改。 应用- 它有助于访问静态数据和实现变量。

相关内容

热门资讯

Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...
项目管理和工程管理的区别 项目管理 项目管理,顾名思义就是专注于开发和完成项目的管理,以实现目标并满足成功标准和项目要求。 工...