На странице 87 из the Game Boy CPU Manual утверждается, что инструкция CP n
устанавливает флаг переноса, когда не было заимствований и что это означает, что A < n
. Это, похоже, само конфликту, потому что флаг переноса установлен, когда A > n
.Каково поведение флага переноса для CP на Game Boy?
В качестве примера: если A=0
и B=1
, CP B
устанавливает флаги, как SUB A, B
, который является 0 - 1. Это становится 0 + 255 = 255, а флаг переноса не установлен, даже если A < B
.
Я столкнулся с этой проблемой в других документах Z80, поэтому я не верю, что это опечатка.
Я не понимаю, как занять и SUB
работать, или что-то еще происходит? Is SUB
не равно ADD
с дополнением двух в терминах флагов?