我正在尝试理解一个经典的老款Mac应用程序的入口点。我已经反汇编了第一个CODE资源(不是CODE#0,这是跳转表)。该代码涉及堆栈上的一些变量:0004(A7)处的一个字,从000C(A7)开始的一组长字的数组,其长度为0004(A7)处的值,并且超出该数组的一个最终长字似乎是指向字符字符串的指针。
这组长字的数组乍一看像字符串,因此看起来我们表面上处理的是(int argc,char ** argv)的情况,但“argv”数组内嵌在堆栈框架中。
当Mac OS首次调用程序时,程序应该在其堆栈/寄存器上期望什么?