Option->General->Analysis
1.Target assembler 选 GNU assembler,这样注释语句起头就是@而不是;
2.Processor specifiic analysis options 中选中 Disable pointer dereferencing,这样对于变量的引用就不会是=dword_xxxxx这样而是off。方便编译器编译
3.File->Product file->Create ASM file...
大部分函数都能编译通过了,但是栈指针引用的都编译不过去,就是这种
OM:000291E4 var_24 = -0x24
ROM:000291E4 var_20 = -0x20
ROM:000291E4 var_18 = -0x18
ROM:000291E4 var_14 = -0x14
ROM:000291E4 var_10 = -0x10
ROM:000291E4 varg_r1 = -0xC
ROM:000291E4 varg_r2 = -8
ROM:000291E4 varg_r3 = -4
ROM:000291F0 04 90 STR R0, [SP,#0x28+var_18]
ROM:000291F2 02 A8 ADD R0, SP, #0x28+var_20
ROM:000291F4 01 92 STR R2, [SP,#0x28+var_24]
ROM:000291F6 05 93 STR R3, [SP,#0x28+var_14]
本文介绍了如何在ASSEMBLER设置中选择GNU as,并启用处理器特定分析选项以简化变量引用。重点在于处理栈指针问题,通过改变配置使编译器能正确编译,解决了ROM代码中关于var_系列变量的指针问题。
2万+

被折叠的 条评论
为什么被折叠?



