老师,您好?为什么要存在【间接寻址】这种方式?它的适用场景是什么?
来源:3-7 计算机的指令系统

白笔一文字
2020-07-24
老师,您好?为什么要存在【间接寻址】这种方式?它的适用场景是什么?
写回答
1回答
-
间接寻址是必要的哈,这个比较底层,涉及汇编语言了,不了解也没关系,我尝试举个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这个地址,然后再找到这个地址对应的数据,并输出,这就是简介寻址的作用。
希望对你有所帮助。
142021-08-09
相似问题