gpt4 book ai didi

emulation - 游戏男孩 : What constitutes a "half-carry"?

转载 作者:行者123 更新时间:2023-12-02 10:50:39 26 4
gpt4 key购买 nike

Game Boy Z80 CPU 有一个半进位标志,我似乎找不到太多关于何时设置/清除它的信息。

到目前为止我所理解的是,任何 8 位加、减、移位或旋转操作(可能还有其他操作?)将其设置为结果的第 4 位(?),并且 DAA 指令以某种方式设置/使用它。我不确定 16 位指令如何影响它以及它是否受到某些寄存器的使用的影响。

最佳答案

它是从第 3 位到第 4 位的进位,就像正常的进位标志记录从第 7 位进位一样。所以,例如在加法中获得半进位:

((a&0xf) + (value&0xf))&0x10

如果应设置半进位,则为 0x10,否则为 0。自然而然地从其他相关操作中获得一半进位——问题是从低位到高位是否有进位。

从正确的角度来看,z80 有一个 4 位 ALU,并通过执行两个 4 位操作来执行 8 位操作。所以它很自然地得到一半进位,作为中间结果。

DAA 对该标志感兴趣,因为如果设置了半进位,那么在低半字节中添加了加起来超过 16 的两位数字;这将正确地产生进位到高半字节,但会使低半字节 6 比它应该产生的低,因为在 10 之间还有六个值,当它应该产生进位时,16,当它产生时。

关于emulation - 游戏男孩 : What constitutes a "half-carry"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8868396/

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