老师,您好?为什么要存在【间接寻址】这种方式?它的适用场景是什么?

来源:3-7 计算机的指令系统

白笔一文字

2020-07-24

老师,您好?为什么要存在【间接寻址】这种方式?它的适用场景是什么?

写回答

1回答

咚咚呛

2020-07-26

间接寻址是必要的哈,这个比较底层,涉及汇编语言了,不了解也没关系,我尝试举个C语言的例子帮助你理解下。

int *a = new int[4];
a[0] = 1;
a[1] = 3;
a[2] = 5;
a[3] = 7;
std::cout << *a + 1 << std::endl;

这里初始化了一个动态数组,容量为4分别赋值为1,3,5,7,在cout的时候,使用的是*a + 1的形式,实际上输出的是数组第二项的结果:3,这种情况下,由于数组的存储在内存中是顺序的,而*a是数组的首地址,*a加1是数组首地址偏移一个单位后的地址,所以这行代码在汇编中是以间接寻址的方式找到结果3的,即指令中存放的是*a+1这个地址,然后再找到这个地址对应的数据,并输出,这就是简介寻址的作用。

希望对你有所帮助。

1
4
前端工程师666777888
回复
白笔一文字
你真理解了吗,我怎么没理解
2021-08-09
共4条回复

(新版)计算机基础,计算机组成原理+操作系统+网络

编程之前先学这门课,系统补足计算机基础知识,夯实编程地基

7739 学习 · 1580 问题

查看课程