Для уточнения тонкостей работы команд 8080 удобно ориентироваться на проверенные реализации 8080, например
Если у нас исходная цифра в младшем полубайте, то переноса в CY не будет, только в AC (если A-F), поэтому к сожалению ACI тут не поможет и единицы не хватает (для A-F).
- - - Добавлено - - -
Можно вычитать не до DAA, а после и тогда избавляемся от CMC и, казалось бы, догоняем по эффективности x86 и z80. Но есть проблема - в большинстве случаев мы используем преобразование полубайта в составе преобразования байта и перед данным фрагментом будет команда ANI 0Fh, которая установит AC и для его сброса придется добавить например ORA A.
Код:
ora a
daa
cpi 10h
sbi 0CFh
- - - Добавлено - - -
parallelno, спасибо, после твоего поста взглянул на проблему комплексно и получилось вот что (ORI 0F0h вместо ANI 0Fh в традиционном варианте):
Код:
ori 0F0h
daa
cpi 60h
sbi 1Fh
Т.е. в итоге само преобразование полубайта сравнялось по эффективности с z80, а 8080 не так уж плох.