我有以下 Z80 asm 代码(来自口袋妖怪遗产水晶)
CheckOnWater::
ld a, [wPlayerStandingTile]
call GetTileCollision
sub WATER_TILE
ret z
and a
ret
我想知道这是什么意思
ret z
and a
ret
据我了解,
sub WATER_TITLE
设置了z标志,有条件返回感觉多余,然后and a
只是再次设置z标志然后返回。
我不能用
ret
替换全部三行吗?
我错过了什么?
逻辑指令无条件清除进位标志。
ret z
返回带有清除的 C,因为结果为零。
如果 and a
保留其设置,则
sub WATER_TITLE
清除 C 标志。
您可能需要搜索
CheckOnWater
调用的来源,以检查进位标志是否重要。不管怎样,可能需要带着清除的进位标志返回。