【问题标题】:Is there any pattern to the z80's opcode layout?z80 的操作码布局有什么模式吗?
【发布时间】:2019-04-21 18:46:12
【问题描述】:

我正在尝试为 z80 编写一个模拟器,并且想知道是否有任何特定的操作码布局(即所有 ld 指令是否都有特定的位设置)。我看过here,但如果有迹象表明我还没有找到它。

有吗?如果有,请举几个例子。

【问题讨论】:

  • 链接文档模式。您到底在寻找什么,为什么?
  • 我希望通过某种方式进行优化。例如,如果所有 X 指令都将 Y 寄存器编号添加到 Z 值,并且如果每条指令的 Y 相同,我可以轻松实现仿真器并减少代码大小。事实上,我必须手动执行每条指令。
  • 我无法给出完整的答案,但是是的,有很多模式。例如,对于ld [reg8],[reg8],操作码是 %01xxxyyy,其中 xxx 对应于第一个操作数,yyy 对应于第二个操作数。 b=000, c=001, ..., l=101, (hl)=110, a=111。例外是 halt,它是 76,对应于 ld (hl),(hl)。这可能对您更有用:tutorials.eeems.ca/ASMin28Days/ref/z80is.html
  • 该页面链接到this
  • 谢谢!这些链接很有用。

标签: opcode z80


【解决方案1】:

你是对的,有一个模式。本页:

http://www.z80.info/decoding.htm

解释各种 Z80 指令的编码,包括有文档和无文档的。

例如,ld c, d 指令编码为LD r[y], r[z],其中操作码的x 字段(两个最高有效位)设置为1,三位字段y 和@987654327 @(分别为 3-5 和 0-2 位)设置为 1 和 2。

为了给你一个如何在模拟器中实现的例子,这里是我的解码器实现的链接: z80.h.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-14
    • 2013-10-03
    相关资源
    最近更新 更多