代码之家  ›  专栏  ›  技术社区  ›  Spooze

向寄存器自身加载指令的目的是什么?

  •  14
  • Spooze  · 技术社区  · 6 年前

    在浏览Gameboy的指令集时,我遇到了如下指令:

    LD A, A
    LD B, B
    LD C, C
    LD D, D
    
    ...
    

    每个指令都有自己的操作码 this table ,这使我认为,由于对可能的操作码数量的限制,它们具有一定的重要性。

    我首先想到的可能是取消对该寄存器中指针的引用,并将值存储在该指针上( like in this question ),但在 emulator ,则, LD A, A 实施方式如下:

    Z80._r.a = Z80._r.a
    

    它们似乎对处理器的状态没有任何影响(只需将寄存器设置为自己的值),并采用与 NOP 执行。

    为什么指令集中包含这些操作码,它们有什么用途?

    2 回复  |  直到 6 年前
    推荐文章