我不清楚静态和堆栈分配是什么吗?静态分配是静态的,堆栈分配是动态的吗?那么堆分配在哪里?
激活记录与此相关吗?我以为激活记录是像激活树这样的概念性东西,并且没有任何物理存在。
以下目标机器代码是什么意思?
静态分配:
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