直接寻址和间接寻址模式的区别

直接寻址模式和间接寻址模式是寻址模式的两种分类。直接寻址模式和间接寻址模式之间的显著差异取决于这两种模式指定指令操作数的方式。直接寻址模式提供要在指令本身中指定的数据地址。与之相反,间接寻址模式提供指定指令中存在数据的内存位置的有效地址。

因此,我们可以说这两种模式是根据它们的指令格式来区分的,以获得要执行操作的数据。

在继续之前,让我们先了解一下-

什么是地址?

我们知道,程序的每一条指令都是在特定数据上运行的。任何指令指定要在其上执行所需操作的数据的方式称为寻址。根据系统中涉及的微处理器,寻址模式有时会有所不同。

基本上,我们知道微处理器一个接一个地执行存储在内存中的指令。指令格式包含操作码和操作数。操作码指定需要执行的操作,如添加、子操作、加载、存储等,而操作数对应于要执行特定操作的数据。

实例:MOV R1.R2.

在上面给出的示例中,MOV是要对操作数R执行的操作1.和R2..

这里需要注意的是,指令可能包含实际操作数或从中提取数据的内存(寄存器)位置的地址。有时,操作数字段保存数据所在地址的引用。这将区分访问操作数的不同方式。在这里,我们将讨论直接寻址和间接寻址方式之间的差异。

内容:直接寻址模式与间接寻址模式

  1. 对比图
  2. 释义
  3. 关键区别
  4. 结论

对比图

比较依据 直接寻址方式 间接寻址方式
基本的 它包含数据的实际地址。 它包含实际地址所在的内存位置的有效地址。
道德原则 首先,通过指令读取地址,然后读取数据。 首先,通过指令读取有效地址,然后读取实际地址,最后获得数据。
运行速度 快速的 比较慢
所需地址空间 小的 大的
内存引用 仅有一个的 双重的
分类 没有进一步的分类。 进一步分为两类,即语域间接和记忆间接。

直接寻址方式的定义

它有时被称为绝对寻址模式。一种寻址模式,其操作数字段保存数据所在内存位置的地址。因此,在这种情况下,需要单个内存引用来获取数据。这里,为了获得数据的精确存储位置,不需要进行精确计算。之所以这样叫它,是因为这里的操作数字段直接指定数据存在的位置。

假设一条指令被指定为:

添加

直接寻址方式

然后,将对该指令进行解码,以获得要对其执行操作的实际操作数。操作数必须到达地址A处的内存位置。

间接寻址方式的定义

一种寻址模式,其操作数字段包含内存或寄存器值,其中存在要执行操作的数据所在位置的地址。因此,在这种情况下,要获取数据,需要一个双内存引用。与直接寻址模式不同,在这种情况下,需要进行一些额外的计算才能获得实际数据。

考虑下面给出的指令:

实例:添加一个

间接寻址方式

此指令将被解码,以获取原始操作数,必须访问地址A处的内存位置。但是,我们不会在那里获得数据,因为在该特定地址,将存在另一个地址,并且在到达该特定位置时将获得数据。之所以这样称呼,是因为准确的位置是间接获得的。

直接寻址模式和间接寻址模式的主要区别

  1. 区分两种寻址模式的关键因素在于访问操作数的方式. 直接寻址模式的操作数部分包含要执行操作的数据所在的内存位置的地址。相反,间接寻址模式的操作数部分包含实际数据地址所在位置的有效地址。
  2. 在直接寻址模式下,只有一个内存引用是必需的,因为数据是通过操作数中给定的地址获得的。与此相反,在间接寻址模式的情况下,需要两个内存引用,因为数据存在于第二个指定的地址位置。
  3. 在直接寻址模式下,每当需要根据指定的操作码访问数据时,只要到达指令操作数部分指定的内存位置,就可以获得数据。而在间接寻址模式下,指令操作数部分中指定的地址位置给出了数据实际驻留的位置的地址。
  4. 直接寻址模式是一种非常有效的方法更快与间接寻址模式相比的方法。
  5. 这个地址空间直接寻址模式所需的值小于间接寻址模式所需的值。
  6. 直接寻址模式没有任何进一步分类而间接寻址方式又分为寄存器间接寻址和存储器间接寻址两类。在寄存器间接法中,操作数保留数据地址所在寄存器的名称,而在内存间接法中,操作数保留数据所在内存位置的地址。

结论

因此,本讨论的结论是,直接寻址模式和间接寻址模式是寻址模式的两种分类,根据访问操作的数据进行区分。

留言

您的电子邮件地址将不会发布。已标记必填字段*