我试图了解一个旧的经典 Mac 应用程序的入口点。我已经反汇编了第一个 CODE 资源(不是 CODE#0,它是跳转表)。代码引用堆栈外的一些变量:0004(A7) 处的一个字,从 000C(A7) 开始的长字数组,其长度是 0004(A7) 处的值,以及该数组之外的最后一个长字似乎是指向字符串的指针。
长词数组乍一看像字符串,所以表面上看起来就像我们在处理 (int argc, char ** argv) 情况,除了“argv”数组在堆栈帧中是内联的。
当一个程序第一次被 Mac OS 调用时,它的堆栈/寄存器应该期待什么?