编译器设计中的静态分配和堆栈分配

时间:2018-08-18 07:56:18

标签: static-allocation activation-record stack-allocation

我不清楚静态和堆栈分配是什么吗?静态分配是静态的,堆栈分配是动态的吗?那么堆分配在哪里?

激活记录与此相关吗?我以为激活记录是像激活树这样的概念性东西,并且没有任何物理存在。

以下目标机器代码是什么意思?

静态分配:

ST callee. staticArea , #here + 20
BR callee. codeArea

堆栈分配:

LD SP , #stackStart
code for the first procedure
HALT
ADD SP , SP , #caller. recordSize
ST *SP , #here + 16
BR callee. codeArea

BR *O (SP) // return to caller
SUB SP , SP , #caller. recordSize // decrement stack pointer

0 个答案:

没有答案