【问题标题】:Addressing modes for static and local variables静态和局部变量的寻址模式
【发布时间】:2012-05-14 11:40:46
【问题描述】:

为什么直接寻址静态变量而间接寻址局部变量?我看不到本地人的间接来自哪里!

【问题讨论】:

  • 您没有提供足够的上下文来很好地回答这个问题。什么编程语言;你在说什么编译器等?

标签: gcc static programming-languages addressing


【解决方案1】:

在允许递归使用函数的语言中,需要间接寻址局部变量(通过堆栈指针)。

然而,C 也有静态局部变量,因此 staticlocal 不一定是相互排斥的概念。

【讨论】:

  • @Ingro 我明白了,所以我们首先计算局部变量的地址,然后从计算的内存地址中读取数据。对吗?
  • 当然,这取决于实现,但常见的做法是让寄存器(堆栈指针)指向堆栈的顶部/底部,然后每个局部变量都有一个与该堆栈指针的已知偏移量。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-10-04
  • 1970-01-01
  • 1970-01-01
  • 2015-10-25
  • 2018-04-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多