我试图了解旧的经典Mac应用程序的切入点。我已经分解了第一个CODE资源(不是CODE#0,这是跳转表)。该代码引用了堆栈外的一些变量:一个在0004(A7)处的单词,一个从000C(A7)开始的长字数组,其长度是0004(A7)的值,以及超出该数组的最后一个长字似乎是一个指向字符串的指针。

长字数组乍一看就像是字符串,所以从表面上看,我们正在处理(int argc,char ** argv)情况,只是“argv”数组在堆栈框架中是内联的。

Mac OS首次调用该程序时,程序在其堆栈/寄存器上应该有什么期望?

最佳答案

从内存上看,当您第一次调用CODE资源时,我认为堆栈上没有任何有趣的东西。经典Mac OS没有使用argc/argv。但是,已经有很长时间了,所以我可能会错了,几年前我把所有旧的Inside Mac卷都扔掉了,所以我不容易检查。

关于macos - 当经典MacOS进入程序时,68000堆栈上有什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2744319/

10-11 22:47
查看更多