如何确定目标文件中指令的开始和结束?

Chr*_*irt 1 z80 emulation disassembly

所以,我一直在尝试编写模拟器,或者至少了解其中的工作原理.我对汇编有很好的把握,特别是z80和x86,但我从来没有真正理解对象文件(或者我的情况下,.gb ROM文件)如何指示指令的开始和结束.

我正在尝试解析每条指令的操作码,但我发现它并不像每条指令后都有换行符.那么这是怎么发生的呢?对我来说,它看起来像一堆字节,无法分辨操作码和操作数之间的区别.

500*_*ror 5

对于大多数CPU - 我相信Z80属于这一类 - 指令的长度是隐含的.

也就是说,您必须对指令进行解码才能确定指令的长度.

  • 唉,没有.您必须分析代码并查看控制流是否可以到达特定地址以确定它是否是代码. (3认同)