1

我正在研究编译器的活性和活性范围,但有点困惑。下图取自教程,显示了给定代码的有效范围。例如,它表示R2在第 2 行加载,load r2, 2其值在第 6 行之前有效mult r1, r1, r2。为什么?在第 6 行,我们执行乘法并将结果分配回R1而不是 in R2,那么为什么会R2丢失它的值?

谢谢!

4

1 回答 1

3

生命周期的全部意义在于找出如何最大限度地减少寄存器的使用。为了做到这一点,我们需要找出寄存器中的值必须保留多长时间,因为在以后的计算中将需要它。

正如 twalberg 所说,r2不再需要,因此我们可能会使用此寄存器来存储不同的值。

于 2013-05-17T17:44:31.890 回答