gpt4 book ai didi

assembly - GBZ80 : How does LD HL, (SP+e) 影响 H 和 cflags?

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

在 Gameboy Z80 上,LD HL,(SP+e) 究竟如何?操作会影响 H 和 C 标志吗? (半携带+携带)

引用:http://www.devrs.com/gb/files/opcodes.html

最佳答案

我意识到这是一个老问题,但前一段时间我遇到了类似的问题,我只想添加我的解决方案,因为绝对没有文档或开源模拟器可以正确执行我的知识。带我在真正的游戏机上进行了一些实际调试以找到解决方案。

对于 16 位 SP + s8(有符号立即数)操作:

如果从第 7 位到第 8 位溢出,则设置进位标志。

如果从第 3 位溢出到第 4 位,则设置半进位标志。

我发现对正负符号立即数 (Lua) 分别执行该行为更容易:

local D8 = self:Read(self.PC+1)
local S8 = ((D8&127)-(D8&128))
local SP = self.SP + S8

if S8 >= 0 then
self.Cf = ( (self.SP & 0xFF) + ( S8 ) ) > 0xFF
self.Hf = ( (self.SP & 0xF) + ( S8 & 0xF ) ) > 0xF
else
self.Cf = (SP & 0xFF) <= (self.SP & 0xFF)
self.Hf = (SP & 0xF) <= (self.SP & 0xF)
end

关于assembly - GBZ80 : How does LD HL, (SP+e) 影响 H 和 cflags?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5159603/

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