有哪些 8051 指令扩展?

逆向工程 8051
2021-07-02 22:40:02

我正在帮助对一个小型嵌入式设备进行逆向工程。我们已经成功提取了一些代码片段,这些代码片段被识别为8051机器码。但是,它使用某种使用 0xa5 操作码前缀的指令集扩展。我知道这被几个不同的指令集扩展使用,所以我需要查找这些,看看哪些是有意义的。

到目前为止,我已经发现并排除了:

  • 飞利浦/恩智浦 51MX
  • 英特尔 MCS-251

还有什么人?

对于利息值,以下是一些扩展说明:

  0023 A5               DB 85h  ; illegal opcode
  0024 6130             AJMP L0002

  005F A5               DB 85h  ; illegal opcode
  0060 817C             AJMP L0010

  0065 A5               DB 85h  ; illegal opcode
  0066 00               NOP

  0068 A5               DB 85h  ; illegal opcode
  0069 A674             MOV @R0, 74h
2个回答

查看 bunnie 在SD 卡控制器上的工作他们查看的一个系列(AX211)实际上使用 a5 作为扩展操作码

CPU 实际上是 JL 的 AC1082:它是为 MP3 播放器市场设计的。它是一个 8051 克隆,具有(我认为)8 kB 的 RAM 和组合的 XDATA/CODE 地址空间,允许它在 RAM 之外运行代码;另外,它有一组非常好的 16 位扩展指令,其中包括使用寄存器对中的地址的直接 XDATA 访问,因此您不必通过 DPTR 进行间接访问。看起来真的是一件很有趣的事情。

它没有记录为任何人都可以找到,但这里有一个 SDK它有用于生成扩展指令的宏,但没有关于它们实际做什么的文档,其中一些并不明显。我仍在尝试使用硬件来实际进行一些测试。

您可以在此处的 Reddit 帖子中找到逆向工程