Строку 94 прошли. Теперь ошибка действительно во флаге H: строка 696, до "DAA" AF=#0010, после -- AF=#0614 вместо правильного AF=#0604, т.е. HF ошибочно взведен.
Логика HF в "DAA" такая:
1) Если NF сброшен, тогда:
1a) Если регистр A до исполнения больше или равен 10, тогда после исполнения HF должен быть взведен.
1b) Иначе A меньше 10 и HF должен быть сброшен.
2) Иначе NF взведен, и тогда:
2a) Если флаг H до исполнения был взведен и регистр A меньше или равен 5, тогда после исполнения HF должен быть взведен.
2b) Иначе либо флаг H до исполнения сброшен, либо регистр A больше 5, и тогда HF после исполнения должен быть сброшен.
Строка 696 с AF=#0010 до исполнения, проходит по пункту 1b), и значит HF должен быть сброшен.





Ответить с цитированием