gpt4 book ai didi

emulation - 游戏男孩 : What is the purpose of instructions that don't modify anything (e. g。和 A)?

转载 作者:行者123 更新时间:2023-12-04 05:17:58 24 4
gpt4 key购买 nike

我一直在研究 Game Boy 模拟器,我注意到存在某些永远不会改变任何值的操作码,例如 LD A, A , LD B, B等,还有 AND A .第一个显然不会改变任何东西,因为它们将寄存器的值加载到相同的寄存器中,并且因为 AND正在与A进行比较注册,AND A将永远返回 A .这些操作有什么目的吗,或者和NOP本质上是一样的每个周期后?

最佳答案

Jeffrey BosboomHans Passant在他们的评论中指出,原因是简单 .更具体地说,硬件简单。
LD r,r'指令将源寄存器( r' )的内容复制到目标寄存器( r )。 LD r,r'操作码遵循以下形式:

        -------------------------------
BIT | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
-------------------------------
OPCODE | 0 | 1 | r | r' |
-------------------------------

目标和源寄存器可以采用以下值:
 -----------
| BIT | REG |
-----------
| 111 | A |
-----------
| 000 | B |
-----------
| 001 | C |
-----------
| 010 | D |
-----------
| 011 | E |
-----------
| 100 | H |
-----------
| 101 | L |
-----------

为了在硬件中实现这些指令,我们只需要一个接收位 0-2 以选择源寄存器的多路复用器和另一个接收位 3-5 以选择目标寄存器的多路复用器。

如果要验证位 0-2 和位 3-5 是否指向同一个寄存器,则必须向 CPU 添加更多逻辑。众所周知,资源在 80 年代更为有限:P

请注意加载说明如 LD A,A , LD B,B , LD C,C , LD D,D , LD E,E , LD H,H , 和 LD L,L表现得像 NOP .然而 AND AOR A 不要表现得像 NOP ,因为它们会影响标志寄存器,并且它们的执行可能会改变内部机器状态。

关于emulation - 游戏男孩 : What is the purpose of instructions that don't modify anything (e. g。和 A)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26416839/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com