我面临着在一个超过 10,000 行的汇编程序中发现一个错误,并在未来对其进行维护。它涉及 PIC18 微芯片微控制器的汇编代码。该代码是由一位不再可用的前同事编写的,他没有留下任何文档,而且他的代码的注释也很差。
该代码还使用了许多直接 goto 和 bra 以及相关的(例如 $+0x06),所以我非常害怕编辑它。
我宁愿将他的汇编源代码反编译成“新的”C 代码(或 C++)并从那里开始工作。我想知道:
- 反编译的汇编器 -> C 代码是否 100% 正常运行?
- 直接和相对 goto 会发生什么?
- 是否有任何免费或便宜的工具可用于反编译 PIC18 代码?