更新:我发现IDA的更高版本(例如6.8)(我无法访问)具有机器.cfg文件中的“ mapaddr”命令。不知道mapaddr到底是做什么的,它可以多地图地址吗?
原始帖子: / m68k-ida-pro-24-bit-addressing / 38314561用户遇到了与我类似的问题,但从未解决。
许多68000系统的64kb RAM映射为两个32kb段, FF8000-FFFFFF和0-7FFF,因此您可以使用字寻址更快地到达整个RAM,因为分支偏移为15位+符号。
我把代码转储分成了两段,但实际上并没有用,因为Motorola 68k有点精神分裂解决。是16位,24位还是32位?它真的是一次全部。 >这应将FFFF8234的双字移动到d0。我希望IDA理解$ 8234与$ ffff8234是相同的,并使用符号等。我将它们更改为引用FFxxxx空间的手动操作数。
但是,尽管那让我(通过单击它们)检查引用,但IDA并不真正了解寻址的工作原理,这意味着我从环境中获得的其他帮助很少,并且子例程和调用未正确检测。
编辑:对于非68k的家伙,movea和lea只是移动指令,可以将内容放入地址寄存器,(几乎)所有寻址与地址寄存器a0-a7一起。
#1 楼
IDA 6.9中添加了对68k的24位地址空间的支持:https://www.hex-rays.com/products/ida/6.9/BUGFIX:mc68k: mc68000,mc68010,cpu32的地址总线宽度减少到24位
评论
hex-rays.com/products/ida/6.9 BUGFIX:mc68k:mc68000,mc68010,cpu32的地址总线宽度减少到24位@IgorSkochinsky谢谢!您应该做出回答,除非有人提出一些聪明的解决方法,否则我会接受的。
@IgorSkochinsky顺便说一句,我无法在线找到有关“ mapaddr”的文档。它有什么作用?我看到它在Tricore定义中使用。
@IgorSkochinsky问题未正确解决。在6.95 IDA中,一些跳跃变得无法识别(请与我联系以PM,然后向我发送示例)。而mapaddr只是在Tricore内部使用的。
@ Dr.MefistO请发送报告给支持,谢谢。